savannah-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Savannah-hackers] savannah.gnu.org: submission of openvnet


From: gsun
Subject: [Savannah-hackers] savannah.gnu.org: submission of openvnet
Date: Mon, 29 Oct 2001 13:15:39 -0500

A package was submitted to savannah.gnu.org.
This mail was sent to address@hidden, address@hidden


Gary L. Sun <address@hidden> described the package as follows:
License: other
Other License: Reservation for now, might change later. I am looking
for a real free software license, not just coding but
freedom to have the choice not to compliant to GNU/GPL/GXX.
But, reserve all rights at the same time.
Package: openvnet
System name: openvnet
This package does NOT want to apply for inclusion in the GNU project

As detailed as possible. Is still under evolution.......
 
(c) 2001. All Rights Reserved.
Gary L. Sun
===========================================================

              OpenVNET .VNET Frame Work

Table Of Contents

1.      Abstract
2.      Conventions used in this document
3.      .VNET Overview
3.1     .VNET Architectural Components
3.1.1   .VNET Webservice Protocol (.VNETWP)
3.1.2   .VNET Client
3.1.3   OpenVNET .VNET  Local Daemon
3.1.4   OpenVNET .VNET Databank Info Server
3.1.5   .VNET Service Server
3.1.6   .VNET Management station
3.1.7   .VNETP
3.1.8   .VNETCP
3.2     OpenVNET .VNET Functional Components
3.2.1   Name Registration Service
3.2.2   Discovery Domain and Login Control Service
3.2.3   State Change Notification Service
3.2.4  CDSA security infrastructure (TBS)
3.2.5  Secured Databank Info Service (TBS, Barry -- may be ?)
3.3     OpenVNET and Domain Name System (DNS)
3.4     OpenVNET .VNET and LDAP
3.5     OpenVNET Local Daemon Discovery
3.6     OpenVNET .VNET and NAT
3.7     Interactions Between OpenVNET .VNET Local Daemon Infrastructures
3.8     Deployment Architecture Diagram
4.      OpenVNET .VNET Object Model
4.1     NETWORK ENTITY Object
4.2     .VNET LOCAL DAEMON Object
4.3     DIRECTORY Object
4.4     NODE Object
4.5     DISCOVERY DOMAIN Object
4.6     DISCOVERY DOMAIN SET Object
4.7     TOKEN Object
4.8     WEBSERVICE Object
4.9     SERVICE SERVER Object
4.10    DATABANK INFO SERVER Object
4.11    NODE Object
4.12    .VNET CLIENT Object
4.13    .VNET VIRTUAL IDENTITY Object
4.14    .VNET
4.7     OpenVNET Database Model
5.      OpenVNET Implementation Requirements
5.1     OpenVNET .VNET Local Daemon Requirements
5.1.1   Required Attributes for Support of OpenVNET .VNET Local Daemon
5.1.2   Attribute Descriptions for OpenVNET .VNET Local Daemon
5.1.3   OpenVNET .VNET Local Daemon Gateway Attribute Requirements
5.1.3.1  Port_ID_Token
5.1.4   Example OpenVNET .VNET Local Daemon Object Model Diagram
5.1.5   Required Commands and Response Messages for Support of OpenVNET .VNET 
Local Daemon
5.2     NODE Requirements
5.3     Attribute Descriptions for Discovery Domain Registration
5.4     Use of TCP For OpenVNET .VNET Communication
5.5     Use of UDP For OpenVNET .VNET Communication
6.      OpenVNET .VNET Message Attributes
6.1     OpenVNET .VNET Attribute Summary
6.2     Virtual Entity Identifier-Token Keyed Attributes
6.2.1   Virtual Entity Identifier (VEID)
6.2.2   Virtual Entity Protocol
6.2.3   Management IP Address
6.2.4   Entity Registration Timestamp
6.2.5   Protocol Version Range
6.2.6   Registration Period
6.2.7   Entity Certificate
6.3     .VNET LOCAL DAEMON-Token Keyed Attributes
6.3.1   .VNET LOCAL DAEMON IP-Address
6.3.2   .VNET LOCAL DAEMON TCP/UDP Port
6.3.3   .VNET LOCAL DAEMON Token
6.3.4   Entity Status Inquiry Interval
6.3.5   ESI/SCN UDP Port
6.3.6   .VNET LOCAL DAEMON Delegating Group
6.3.7   .VNET LOCAL DAEMON Certificate

6.4     OpenVNET .VNET WEBSERVICE Object Node-Keyed Attributes
6.4.1   OpenVNET .VNET WEBSERVICE Object Node Port Name
6.4.2   OpenVNET .VNET WEBSERVICE Object Node Port ID Token
6.4.3   OpenVNET .VNET WEBSERVICE Object Node Port Type Token
6.4.10   OpenVNET .VNET WEBSERVICE Object Descriptor
6.4.11   OpenVNET .VNET WEBSERVICE Object Features
6.4.5   OpenVNET .VNET WEBSERVICE Object Node Name
6.4.4   OpenVNET .VNET WEBSERVICE Object Node Name Token
6.4.14   OpenVNET .VNET WEBSERVICE Object Node Type
6.4.14   OpenVNET .VNET WEBSERVICE Object Node Type Token
6.4.12   OpenVNET .VNET WEBSERVICE Object Node SCN Bitmap
6.4.13   OpenVNET .VNET WEBSERVICE Object Node Certificate
6.4.6   OpenVNET .VNET WEBSERVICE Object Proxy Node
6.4.7   OpenVNET .VNET WEBSERVICE Object Proxy IP Address
6.4.8   OpenVNET .VNET WEBSERVICE Object Proxy Class of Service (COS)
6.4.9   OpenVNET .VNET WEBSERVICE Object Ptoxy Types

6.5     OpenVNET .VNET NODE Node-Token Keyed Attributes
6.5.1   OpenVNET .VNET NODE Node Name
6.5.2   OpenVNET .VNET NODE Node Name Token
6.5.3   OpenVNET .VNET NODE IP Address
6.5.4   OpenVNET .VNET NODE Initial Process Associator (IPA)
6.5.5   OpenVNET .VNET NODE Object Certificate
6.6     Other Attributes
6.6.1   Type Code
6.6.2   Preferred ID
6.6.3   Assigned ID
6.6.4   Space_Identifier
6.7     Discovery Domain Registration Attributes
6.7.1   OpenVNET Discovery Domain Attribute Summary
6.7.2   DD Set ID Token Keyed Attributes
6.7.2.1  Discovery Domain Set ID (DDS ID)
6.7.2.2  Discovery Domain Set Token
6.7.2.3  Discovery Domain Set Status
6.7.2.4  Discovery Domain Set Member
6.7.3.1  Discovery Domain ID (DD ID)
6.7.3.2  Discovery Domain Token
6.7.3.3  Discovery Domain SERVICE SERVER Node Member
6.7.3.4  Discovery Domain NODE Object Node Member
6.8     Vendor-Specific Attributes
6.9    Company OUI
7.      .VNETP Message Format
8.      Security Infrastructure
8.1     Data Integrity and Authentication
8.2     Confidentiality
8.3     Security Model
<!-- ===================================================== -->

              OpenVNET .VNET Frame Work


1.      Abstract

   This document provides a preliminary framework (OpenVNET .VNET) (referred to
   as .VNET hereinafter) centering around use of the OpenVNET Distributed 
Virtual Execution Environment. It supports the use of OpenVNET Virtual Identity 
and Resource Messageing System for discovery and management of OpenVNET 
Databank Info Servcie and Webservice Local Daemon in any IP network, and the 
frame work for OpenVNET Service Server, as a integrated application.

   .VNET is an application that stores and manage the use of OpenVNET Token 
System across OpenVNET Distributed Virtual Execution Environment, including 
support of Local Daemon, Databank Info Server, and Service Server token 
attributes, and monitors their availability, scalability, and reachability in 
an integrated IP network.

   Due to its role as a consolidated information repository and management 
agency, .VNET provides for more efficient, scalable, and secured management of 
peer-to-peer and client-server interchange of data in an IP network.

2.      Conventions used in this document

   .VNET refers to the framework consisting of the 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 IP frame formats are in big endian network byte order.

3.      .VNET Overview

   The objective of .VNET is to facilitate scalable configuration and secure 
management of participating elements in an IP network. A OpenVNET .VNET 
implementation MAY provide support for one or any number of .VNET as desired by 
the implementer.

   When used to support heterogeneous network, .VNET can be implemented to 
facilitate the discovery and management of OpenVNET Token System based network 
and with a gateway layer to support mapping from other identification system 
into DitGNU Token System in an integrated IP environment.

3.1     .VNET Architectural Components

3.1.1   .VNET Protocol (.VNETP)

   The .VNET Protocol (.VNETP) is a flexible and lightweight protocol
   that specifies how .VNET clients and .VNET Local Daemons communicate.

3.1.2   .VNET Client

   .VNET clients initiate transactions through the OpenVNET Webservice to 
OpenVNET Local Daemon using the .VNETP.  OpenVNET Webservice clients are 
applications that are co-resident in the user\'s computing service, and can 
register its attribute (service tokens) information in OpenVNET Token System 
format to OpenVNET Local Daemon.

3.1.3   .VNET OpenVNET Local Daemon

   The OpenVNET Local Daemon intercepts requests and responses from/to 
Webservice(s) and provides services to regsitered Webservice(s) from other 
registered OpenVNET Local Daemon and any registered token from the OpenVNET 
Databank Info Server(s). Before a Webservice can send its requests and receive 
services with OpenVNET Local Daemon, registered token(s) must be made available 
to the OpenVNET Local Daemon and stored in a common DD, and then OpenVNET Local 
Daemon will make the registered token(s) available to other OpenVNET Local 
Daemons requesting services. OpenVNET Local Daemon also receive asynchronous 
notification of topology .VNETs that occur in their DD(s). The   DD will be 
dynamically updated through a secured mechanism not to disrrupting on going 
servics and communications.

        The OpenVNET Local Daemon is used as an envelop encapsulating users\' 
data and
        service requests. It can delegate a group of combination of webservices,
        service servers, and users.

3.1.4   OpenVNET Databank Info Server

   The OpenVNET Databank Info Server is the information repository for the 
OpenVNET server(s).  It maintains information about OpenVNET client, server, 
local daemon attributes in encoded token format, not private data. The 
endcoding and decoding of tokens bewteen Webservice and OpenVNET Local Daemon 
are localized only between two communicating parties. The user (or client) can 
select his desired PKI crypto from a CryptoSuite from Local Daemon. The 
encoding and decoding of tokens between OpenVNET Local Daemon and OpenVNET 
Databank Info Server are made available through PKI. Trusted certificates are 
only issued by OpenVNET root CA to OpenVNET Local Daemon, and clients get 
certificates from its delegating OpenVNET Local Daemon.

        OpenVNET Databank Info Server provides redundency at 1:1 or 4+1. (more 
on this later)

   A directory-enabled implementation of token repository may store client 
token attributes in an secured LDAP directory infrastructure upon the client\'s 
request OpenVNET Local Daemon. A token attribute will be designated for this 
purpose.

3.1.5   .VNET Service Server

        Any services that a client wants to provide. Token attributes are 
allocated for this purpose. After the registration process is complete with 
client\'s delegating OpenVNET Local Daemon. Service Server is visible on the 
network through OpenVNET Local Daemon.

3.1.6   .VNET Management station

   A .VNET Management station is a special type of OpenVNET .VNET client that 
has access to all tokens stored in the OpenVNET Databank Info Server. It is 
managed by OpenVNET .VNET Root Administrator. It is centralized in nature. It 
provides root CA.

3.1.7   .VNETP

   .VNETP is an encapsulation of OpenVNET Token System and RLS to interconnect 
over OpenVNET.

3.1.8   .VNETCP

   .VNETCP is a gateway-to-gateway channel protocol designed to interconnect 
existing servers and network using TCP/IP. VNETCP maps the existing 
identification into OpenVNET Token System.

3.2     OpenVNET Functional Components

   Main functional components of the OpenVNET are listed below:

   1)  A Name Service Providing Peer (OpenVNET Local Daemon) Discovery
   2)  Discovery Domain (DD) and Login Control Service (Auth)
   3)  State Change Notification Service
   4)  CDSA security infrastructure
   5)  Secured Databank Info Service

3.2.1   Name Registration Service

   The OpenVNET provides a registration function to allow all entities in a
   network to register and query the directory.  Both targets
   and initiators can register in the OpenVNET, as well as query for
   information about other initiators and targets.  This allows, for
   example, a client initiator to obtain information about target
   services from the OpenVNET Local Daemon. This service is modeled in the 
OpenVNET Local Daemon Name Server.

   In order to maintain consistency between DNS Name-to-IP address
   mappings stored in the OpenVNET Local Daemon, and the same mappings which 
may exist in DNS servers, a common backend database storing such mappings may
   be implemented to support both DNS and OpenVNET Local Daemon Naming Service 
which in general will be token based.  This backend database
   can be based upon a standard network directory service such as LDAP on 
OpenVNET Local Daemon in consistent with the ones in OpenVNET Databank Info 
Servers.

   The naming registration service also provides the ability to obtain
   a network unique Domain ID (token) for OpenVNET Local Daemons when required.

3.2.2   Discovery Domain and Login Control Service

   The Discovery Domain (DD) Service facilitates the partitioning of
   OpenVNET client services into more manageable groupings for
   administrative and login control purposes. This allows the
   administrator to limit the login process to the more appropriate
   subset of targets registered in the OpenVNET. This is the delegation process 
between the OpenVNET Local Daemon and clients. OpenVNET clients must be in
   at least one common DD in order to obtain information about each
   other throuhg OpenVNET Local Daemon. OpenVNET clients can be a member of 
multiple DD\'s simultaneously.

   The DD information stored in the OpenVNET Local Daemon can be used by various
   enforcement points in the network to configure security and access
   control policy, only if the client sets the permission attributes of 
multicasting.  For example, a DD-aware OpenVNET Local Daemon can block service
   initiators from accessing targets that are not in the same DD, even
   if the initiator somehow obtained token information for a target
   outside of its DD.  This functionality is the equivalent of the
   zoning functionality.

        (...I put down this just as my thoughts. Barry might have more to say 
about this)
   Login Control allows targets to subordinate their access control
   policy to the OpenVNET Local Daemon.  The authorized target node 
(registered) or service downloads the list of authorized initiator nodes in 
token format  from the OpenVNET .VNET network.  Each node is uniquely 
identified by an TOKEN with attributes. Only initiator nodes that match the 
required identification and authenticating information provided by the OpenVNET 
.VNET will be allowed access by that target node during session establishment.  
If spoofing of initiator identities is a concern, the target may use the public 
key certificate of the authorized initiator, obtained from its delegating 
OpenVNET Local Daemon, to authenticate the initiator.


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

   If administratively authorized (by OpenVNET root Admin or ?) , a target can 
upload its own Login Control list to the OpenVNET Databank Info Server.  This 
is accomplished using the DDReg message and listing the TOKEN of each initiator 
to be registered in the Target\'s DD.

   Depending on the implementation, newly registered nodes 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 OpenVNET Local Daemons in that 
DD.  Other implementations MAY decide that they are registered with no DD, 
making them inaccessible to source-scoped
   OpenVNETP messages.

   The SOURCE field of every OpenVNET query and registration message is used to 
determine the source of the request and scope the operation to the set of 
Discovery Domains on the OpenVNET Local Daemon that the OpenVNET client is a 
member of.

   If the SOURCE field contains NULL, the OpenVNET query and registration 
message SHALL BE scoped to the entire contents of the OpenVNET, regardless of 
the configuration of Discovery Domains.

   Enabled Discovery Domains (DD\'s) belong to at least one active Discovery 
Domain Sets (DDS\'s).  Discovery Domains that do not belong to an activated DDS 
are not enabled.

3.2.3   State Change Notification Service

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

   The State Change Notification service utilizes the Discovery Domain Service 
to control the distribution of notification messages. Notifications about 
changes within a DD are limited to members of that DD, and is only controlled 
by the OpenVNET Local Daemon.

   If any of OpenVNET Local Daemons 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, current level of SCN registrations, or current service 
condition has passed an implementation-specific threshold or some critical 
sessions in progress.  A client not allowed to register for SCNs SHOULD monitor 
its sessions with other OpenVNET Local Daemons directly.

   The specific notification mechanism by which the OpenVNET learns of the 
.VNETs is implementation-specific, but can include examples such as explicit 
notification messages from an OpenVNET client to the OpenVNET Local Daemon, or 
an interruption of servie by the OpenVNET Local Daemon to a detected possible 
intrusion of access as a result.

3.2.4  CDSA security infrastructure (TBS)

3.2.5  Secured Databank Info Service (TBS, Barry -- may be ?)


3.3     OpenVNET and Domain Name System (DNS)

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

3.4     OpenVNET .VNET and LDAP

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

   The OpenVNET .VNET Local Daemon application provides capabilities that LDAP 
alone is not designed to achieve.  This includes the following:

   1)  Client Attribute Awareness - The OpenVNET Local Daemon application 
interprets attribute values submitted by clients in registration messages, and 
can take appropriate action based upon specific registered attribute values.  
The OpenVNET Local Daemon is conscious of the state of each client.

   2)  State Change Notification - An OpenVNET Local Daemon may initiate 
notification messages to clients in the .VNET of a change in the network, such 
as the non-availability or reachability of a OpenVNET Local Daemon, or a 
specific change in the value of a client or service server attribute.

   3)  Monitoring of Clients - OpenVNET Local Daemon provides a Entity Status 
Inquiry message to verify the availability and reachability of end-points.

   4)  Lightweight - OpenVNETP is a simple and lightweight protocol suitable 
for implementation on OpenVNET Local Daemon such as softswitches (or gateway) 
delegating a group of clients and service servers, or resides with the client 
as a single component.

3.5     OpenVNET Server Discovery

   The Service Location Protocol (SLP) provides a flexible and scalable 
framework for providing nodes with access to information about the existence, 
location, and configuration of networked services, including the service 
servers under a particaular OpenVNET Local Daemon.  SLP MAY be used by OpenVNET 
clients to discover the IP address of the OpenVNET Local Daemon or a service 
server on OpenVNET .VNET.  To implement discovery through SLP, a Service Agent 
(SA) should be cohosted in the OpenVNET Local Daemon, and a User Agent (UA) 
should be in each OpenVNET client. Each client requests a multicasting 
discovery message through OpenVNET Local Daemon to request the IP address of 
the OpenVNET serice server(s) and OpenVNET Local Daemons.  The SA responds to 
this request if any of the OpenVNET service servers and OpenVNET Local Daemons 
have the permission attributes authorized to provide such.  Optionally, the 
location of the OpenVNET nods can be stored in the SLP Directory Agent (DA) on 
the delegating OpenVNET Local Daemon.

   Note that a complete description and specification of SLP can be
   found in [RFC2608], and is beyond the scope of this document.

   If SLP is not used, then the IP address of the OpenVNET Local Daemon can be 
stored in a DHCP server to be downloaded using a DHCP option, such as any of 
the reserved site-specific option codes (from 128 to 255).  Another approach is 
to configure each OpenVNET client to listen to the OpenVNET Name Service 
Heartbeat message (see section 7.6.5.14).  A final approach would be to 
manually configure the IP address of the OpenVNET Local Daemon. This feature 
will support LAN/WAN, ISP, or enterprise environment.

3.6     OpenVNET and NAT

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

   There are several possible approaches to allow operation of OpenVNET 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 OpenVNET client to not query for nominal IP addresses.  
Rather, an OpenVNET client initiator SHALL send query to OpenVNET Local Daemon 
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, and then mapped to OpenVNET Token System.

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

   A final approach is to simply disallow use of NAT in between communication 
between the OpenVNET Local Daemon and any OpenVNET client. However, two proxy 
components are needed, one on OpenVNET Local Daemon, one on client in front of 
webservice.

3.7     Interactions Between .VNET Local Daemon Infrastructures

   Each individual .VNET Local Daemon 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 .VNET
   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 .VNET not only scales to large
   networks, but also to support interactions among multiple independently
   managed .VNET infrastructures, each managed by its own administrative
   authority.

   The information registered in the .VNET Local Daemon can be shared with
   other .VNET Local Daemon managed by other administrative authorities through
   out-of-band, non-.VNET protocols.  By importing registration information
   from a remote .VNET Local Daemon,  connectivity can be established to nodes
   managed by that .VNET Local Daemon.

   The following examples illustrate possible methods to transfer .VNET data
   records of node between autonomous, independently-administered .VNET Local
   Daemons.  In the first example, a back-end LDAP information base is used to
   support the .VNET Local Daemon.  The following diagram illustrates use of
   the LDAP protocol to import .VNET Local Daemon registration information from
   one .VNET Local Daemon to another.  Once the record transfer of the remote
   service is completed, it becomes visible and accessible to delegated clients
   and service servers.  This allows local nodes to establish sessions with
   remote .VNET Local Daemon (client/Server but only through .VNET Local
   Daemon) (provided firewall boundaries can be negotiated).

   +-------------------------+         +-------------------------+
   |+------+       .VNETP    |         |         .VNETP  +-----+ |
   ||xxx A |<----->+------+  |         |  +------+<----->|xxx C| |
   |+------+      |       |  |         |  |       |      +-----+ |
   |+------+      |.VNET  |  |         |  | .VNET |      +-----+ |
   ||xxx B |<---->|Local  |  |         |  | Local |<---->|yyy D| |
   |+------+      |Daemon |  |         |  | Daemon|      +-----+ |
   |........      +--+---+|  |  WAN    |  +---+--+               |
   |.xxx C\'.         |       | Link    |      |                  |
   |........         |     =============      |                  |
   |                 |       |         |      |                  |
   |            +--+---+     |         |  +---+--+               |
   |            | local|<--- <--- <--- <--|remote|               |
   |            | LDAP |     |  LDAP:  |  | LDAP |               |
   |            +------+     | \"xxx C\" |  +------+               |
   +-------------------------+  Xfer   +-------------------------+

        Network A                              Network B

   In the above diagram, two partners wish to share services
   \"xxx C\". Using LDAP, the record for \"xxx C\" service can be transfered
   from Network B to Network A.  Once accessible to the .VNET Local
   Daemon in Network A, local xxx A and xxx B can now discover and
   connect to \"xxx C\". \"xxx C\" becomes a Virtual Identity of xxx C\' service
   ont .VNET.


   +-------------------------+         +-------------------------+
   |+------+        .VNETP   |         |    .VNETP       +-----+ |
   ||xxx A |<----->+------+  |         |  +------+<----->|xxx C| |
   |+------+       |      |  |         |  |remote|       +-----+ |
   |+------+       |.VNET |  |         |  |.VNET |       +-----+ |
   ||xxx B |<----->| Local|  |         |  |Local |<----->|xxx D| |
   |+------+       |Daemon|  |         |  |Daemon|       +-----+ |
   |........       +------+  |   WAN   |  +---+--+               |
   |.xxx C\'.        ^     |  |   Link  |  |      |               |
   |........        |     |  |<=======>|  v      v               |
   |                |     |  |         |    DNMP                 |
   |                |     v  |         |      |                  |
   |                +--+--+  |         |      v                  |
   |               | DNMP  | <--- <--- <--- <----                |
   |               | Mgmt  | |  DNMP: Xfer \"xxx C\"               |
   |               |Station| |         |                         |
   |               +-------+ |         |                         |
   +-------------------------+         +-------------------------+

        Network A                             Network B

   The above diagram illustrates a second example of how .VNET records
   can be shared.  In this case, the .VNET Local Daemon are not using LDAP to
   store records.  This method uses an DNMP-based management station in
   .VNET Local Daemon to download the desired record for \"xxx C\", and then
   directly upload it to the requesting .VNET Local Daemon. Once the record is
   transfered to the .VNET Local Daemon in Network A, \"xxx C\" becomes visible
   and accessible.

   (provided firewall boundaries can be negotiated) to other nodes in
   Network A.

   Other methods, including proprietary protocols, can be used to
   transfer service records between independently-administered .VNET
   Local Daemons by using .VNETCP with .VNET Gateway-to-Gateway protocol.

3.8     Deployment Architecture Diagram

   The following diagram displays examples of where and how .VNET
   components can be deployed.

 +--------------+        +-----------+        +--------------+
 | DNS Server   |  LDAP  | .VNET     |  LDAP  |   .VNET      |
 | or .VNET     |<------>| Databank  |<------>|   .VNET      |
 |Naming Service|        | Info      |        | Local Deamons|
 +------+-------+        +-----+-----+        +-------+------+
        |                      |                      |
        | DNS                  | LDAP          .VNETP |
        |Queries               |(or else)             |
   +------+----------------------+----------------------+---------+
   |                                                              |
   |                    .VNET                              |
   |                                                              |
   +----+-----------+----------+---------------+------------------+
       ^         |             |                    |
       |         |             |              +-----+-----+
       |         |             |              |.VNET      |
       |         |             |              |           |
       |         |             |              |Gtwy/Server|
       |         |             |              +-----+-----+
       v         |             |                    | .VNETCP
   +----+----+ +----+------+ +---+-----+      +----+-+ +---+----+
   |(client) | | requested | |.VNET    |      |  other Network  |
   |Initiator| | node      | |Local    |      |or .other   VNET |
   +---------+ +-----------+ |Daemon   |      |    Network      |
                             +---------+      +-----------------+

4.      .VNET Object Model

   .VNET provides the framework for the registration and discovery of
   .VNET nodes and other foreign nodes.  This architecture defines common
   objects that can be used to represent components referenced by each of these
   nodes.

   This architecture framework provides elements needed to describe various
   .VNET node objects and attributes that may exist on an .VNET network.
   Objects defined in this architecture framework include DATABANK INFO SERVER,
   NETWORK ENTITY, .VNET LOCAL DAEMON, TOKEN, WEBSERVICE, .VNET CLIENT, VIRTUAL
   IDENTITY, DISCOVERY DOMAIN, and DISCOVERY DOMAIN SET.  Each of these objects
   are described in greater detail in the following sections.

        1. NETWORK ENTITY includes DATABANK INFO SERVER, .VNET LOCAL DAEMON,
                DISCOVERY DOMAIN, DISCOVERY DOMAIN SET, CDSA, TOKEN, DIRECTORY, 
and NODE.
        2. NODE includes .VNET CLIENT, SERVICE SERVER, WEBSERVICE, and .VNET 
LOCAL
                DAEMON.
        3. TOKEN includes .VNET Token System.
        4. VIRTUAL IDENTIY is an identification used in .VNETP and .VNETCP.

4.1     NETWORK ENTITY Object

   The NETWORK ENTITY object is a container of TOKEN objects, .VNET LOCAL
   DAEMON, and DATABANK INFO SERVER objects.  It represents a set of .VNET LOCAL
   MON or gateway that is accessible from/to the .VNET network.  All
   NODEs and .VNET LOCAL DAEMONs contained in a NETWORK ENTITY object operate in
   a coordinated manner.

4.2     .VNET LOCAL DAEMON Object

   The .VNET LOCAL DAEMON object is an IP interface through which access to any
   NODE within the NETWORK ENTITY can be obtained.  A NETWORK ENTITY must have
   one or more .VNET LOCAL DAEMONs, each of which is usable by NODEs contained
   in that NETWORK ENTITY to gain access to, or be accessible from, the IP
   network.

4.3     DIRECTORY Object

   The DIRECTORY object is the logical endpoint of an .VNET LOCAL DAEMON
   connection session. The session endpoint is represented by TOKEN.
   TOKEN defines tokens with attributes for NETWORK ENTIY.

4.4     NODE Object

   The NODE Object represents .VNET CLIENT, WEBSERVICE, SERVICE SERVER end
   nodes. All NODE Objects have a set of tokens and attributes defined. These
   defined tokens and attributes are used in combination with TOKEN to establish
   a VIRTUAL IDENTIY for each NODE Object and NODE Object request.

4.5     DISCOVERY DOMAIN Object

   DISCOVERY DOMAINS (DD) are a security and management mechanism used to
   partition NETWORK ENTITY resources.  Discovery Domains limit the discovery
   process to the administrator-configured subset of relevant NODE, .VNET LOCAL
   DAEMON, and DATABANK INFO SERVER pr.VNETing initiators from inappropriately
   attempting login to that they shouldn\'t have access to. When queried, the
   .VNET LOCAL DAEMON will provide information only for network node entities
   that share at least one common DD.  Initiators will not be able to \"see\"
   nodes with which they do not have at least one common DD.

4.6     DISCOVERY DOMAIN SET Object

   The DISCOVERY DOMAIN SET (DDS) is a container object for DD\'s. DDS\'s may
   contain one or more DD\'s.  Similarly, each DD can be a member of one or more
   DDS\'s.  DDS\'s are a mechanism to store coordinated sets of DD mappings in 
the
   NETWORK ENTITY.
4.7     OpenVNET Database Model

   The following shows the the various objects described above and
   their relationship to each other.


               +--------------+    +-----------------------+
               |   NETWORK    |1  *|                       |
               |   ENTITY     |----|  .VNET LOCAL DAEMON   |
               |              |    |                       |
               +--------------+    +-----------------------+
                      | 1
                      |
                      |
                      | *
   +-----------+    +--------------+    +-----------+    +-----------+
   |           |1  *|   .VNET      |*  *| DISCOVERY |*  *| DISCOVERY |
   |  NODE     |----|   LOCAL      |----|  DOMAIN   |----|  DOMAIN   |
   |           |    |   DAEMON     |    |           |    |   SET     |
   +-----------+    +--------------+    +-----------+    +-----------+

            * represents 0 to many possible relationships

5.   OpenVNET Implementation Requirements

   OpenVNET can be implemented with features to support native OpenVNET .VNETWP,
   .VNETP, and .VNETCP, and not native protocols. Implementation of support for
   either or both of these protocols is OPTIONAL. IF OpenVNET .VNET is 
implemented
   to support a particular protocol, then a minimum set of attributes and
   .VNETWP, .VNETP, and .VNETCP commands is REQUIRED for support of that
   protocol. This section details specific requirements for support of each of
   these protocols.

5.1     OpenVNET .VNET Local Daemon Requirements

   In OpenVNET .VNET Local Daemon, use of OpenVNET is REQUIRED.  No alternatives
   exist for support of OpenVNET .VNET Local Daemon Naming & Discovery 
functions.
   In addition, OpenVNET .VNET Local Daemon Gateway is integral to the operation
   of OpenVNET .VNET Local Daemon, in order to allow OpenVNET .VNET Local Daemon
   gateways to interface to OpenVNET .VNET. Mappings to OpenVNET Token System is
   rquired.

5.1.1   Required Attributes for Support of OpenVNET .VNET Local Daemon

   The following table displays (or suggestes) attributes that are used by
   OpenVNET .VNET to support OpenVNET .VNET Local Daemon.  Attributes indicated 
in
   the REQUIRED TO IMPLEMENT column MUST be supported by the OpenVNET NETWORK
   ENTITY and all NODE participants.

   Attributes indicated in the REQUIRED TO USE column MUST be supported
   by OpenVNET .VNET NETWORK ENTITY, NODE, and OpenVNET .VNET Local Daemon 
Gateways.

                                                                        
REQUIRED                REQUIRED
   Object               Attribute                                       to 
Implement    to Use
   ------               ---------                                       
------------    --------
   NETWORK ENTITY       Entity Identifier                             *         
                *
                        Entity Protocol                               *         
                *
                        Management IP Address
                        Timestamp                                     *
                        Protocol Version Range                        *
                        Entity Certificate                              *       
                (not used if guests)

   .VNET LOCAL DAEMON   IP Address                                      *       
                *
                                        TCP/UDP Port                            
        *              *
                                        .VNET LOCAL DAEMON Token                
        *                                       *
                                        .VNET LOCAL DAEMON Group            *
                                        .VNET LOCAL DAEMON Certificate      *

   NODE                                 Port Name                               
                *                       *
                                        Port_ID                                 
                *                       *
                                        Port Type                               
                *                       *
                                        Port Token                              
                        *
                                        Class of Service                        
                *
                                        Service Types                           
                *
                                        Service Descriptors                     
        *
                                        Service Features                        
                *
                                        SCN Event Bitmap                        
                *
                                        Node Certificate                        
                *

   DISCOVERY DOMAIN     DD_ID                                                   
*                       *
                                        DD_Token                                
                        *

   DISCOVERY DOMAIN     DDS Identifier                                          
*
   SET                          DDS Token                                       
                 *
                                        Status                                  
                *

5.1.2   Attribute Descriptions for OpenVNET .VNET Local Daemon

   The OpenVNET attributes used to support OpenVNET .VNET Local Daemon are 
shown and
   described in the following figure: (All attributes described below will be
   encapsulated by .VNET Token)

   - OpenVNET .VNET Service Server-Specific
      - Preferred_ID
      - Assigned_ID
      - Space_Identifier
      - Assigned OpenVNET .VNET Token

   - OpenVNET .VNET Local Daemon NETWORK ENTITY
      |
      - Entity Identifier
      |   By convention this is the DNS name of the
      |   .VNET LOCAL DAEMON IP-Address(es) mapped to .VNET Token.  If it is not
      registered
      |   the OpenVNET will assign a unique alphanumeric identifier to it.
      - Entity Protocol
      |   Indicates this is an OpenVNET .VNET Local Daemon registration
      - Management IP-Address
      |   If it is not registered then in-band management
      |   is assumed.
      - Timestamp
      |   Last registration update.  Maintained by the OpenVNET.
      - Protocol Version Range
      |   Indicates the OpenVNET .VNET Local Daemon versions supported
      - Entity Certificate
      |   X.509 certificate bound to the Entity (FQDN)
      |
      - .VNET LOCAL DAEMON (1 - n per ENTITY)
      |   |
      |   - IP-Address
      |   - TCP/UDP Port
      |   |   The IP-Address and Port combined uniquely
      |   |   define a .VNET LOCAL DAEMON and then mapped to .VNET Token.
      |   - .VNET LOCAL DAEMON Token
      |   - Entity Status Inquiry Interval
      |   |   0 if no status inquiry is used
      |   - Entity Status Inquiry Port
      |   |   The port used to receive ESIs
      |   - .VNET LOCAL DAEMON Group
      |   |   The aggregation group this .VNET LOCAL DAEMON is a member of
      |   - .VNET LOCAL DAEMON Certificate (.VNET delegation)
      |
      - NODE (1 - k per ENTITY)
         |
         - Port
         - Port ID
         - Port Type
         - Port Token
         - Class of Service
         - Srevice Types
         - Service Descriptors
         - Service Features
         - SCN Bitmap
         - Node Certificate

5.1.3   OpenVNET .VNET Local Daemon Gateway Attribute Requirements

5.1.3.1  Port_ID_Token

   Port_ID_Token assignments for each NODE object within a single NETWORK ENTITY
   SHALL be unique.  For each NETWORK ENTITY (i.e., OpenVNET .VNET Local Daemon
   Gateway), no more than one NODE can be assigned a given PORT_ID_Token value.

5.1.4   Example OpenVNET .VNET Local Daemon Object Model Diagram

   The OpenVNET .VNET Local Daemon protocol allows native OpenVNET .VNET NODE 
Object
   to an OpenVNET .VNET Local Daemon , to be directly internetworked using IP.

   When supporting OpenVNET .VNET NODEs, the OpenVNET .VNET Local Daemon stores 
NODE
   Object attributes, OpenVNET .VNET Local Daemon gateway attributes, and 
OpenVNET
   .VNET Databank Info Server attributes that might also be stored in an .VNET
   name server.

   The following diagram shows a representation of a OpenVNET Local Daemon
   supporting multiple NODE Objects behind it.  The two .VNET LOCAL DAEMON
   objects represent IP interfaces on the OpenVNET .VNET Local Daemon that can 
be
   used to access any of the three NODE objects behind it.  Note that the NODE
   object is not contained in the NETWORK ENTITY object.

   However, each NODE Object has a relationship to one or more NODE objects.

(TBS)

                (Port ID = Port ID Token, COS - Service Tokens)

5.1.5   Required Commands and Response Messages for Support of OpenVNET .VNET
Local Daemon

   The .VNETP messages and responses displayed in the following tables are also
   available to support OpenVNET .VNET Local Daemon gateways.  Messages 
indicated
   in the REQUIRED TO IMPLEMENT column MUST be supported by the OpenVNET NODE.
   Messages indicated in the REQUIRED TO USE column MUST be supported by the
   OpenVNET .VNET Local Daemon themselves.

                                                                        
REQUIRED TO:
     Message Description                  Abbreviation  Func ID   Implement   
Use
     -------------------                  ------------  -------   ---------   
---
   Register Attr Req                       RegDevAttr   0x0001             *    
    *
   Attr Query Request                      DevAttrQry   0x0002             *    
    *
    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        *
   DD Register                                  DDReg        0x0009        *    
    *
   DD Deregister                                DDDereg      0x000A             
*        *
   DDS Register                                 DDSReg       0x000B        *    
    *
   DDS Deregister                               DDSDereg     0x000C        *    
    *
   Name Service Heartbeat               Heartbeat    0x000E        *
   Reserved                                     Reserved     0x000F-0x0010
   Request Gateway ID                           RqstGwId     0x0011
   Release Gateway ID                   RlseGwId     0x0012
   Get Gateway IDs                              GetGwIds     0x0013
   RESERVED                                                       0x0014-0x00FF
   Vendor Specific                                                0x0100-0x01FF
   RESERVED                                                       0x0200-0x8000

   The following are .VNETP response messages in support of OpenVNET .VNET Local
   Daemon:

                                              REQUIRED TO:
   Response Message Desc         Abbreviation           Func_ID         
Implement       Use
   ---------------------         ------------           -------         
---------       ---
   Register Attr Rsp                    RegDevRsp       0x8001          *       
        *
   Attr Query Resp                      DevAttrQryRsp   0x8002          *       
        *
   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          *
   DD Register Rsp              DDRegRsp        0x8009          *               
*
   DD Deregister Rsp            DDDeregRsp      0x800A          *               
*
   DDS Register Rsp             DDSRegRsp       0x800B          *               
*
   DDS Deregister Rsp           DDSDeregRsp             0x800C          *       
        *
   NOT USED                                                     0x800E
   RESERVED                                                     0x800F-0x8010
   Request Gateway ID Resp         RqstGwIdRsp          0x8011
   Release Gateway ID Resp         RlseGwIdRsp          0x8012
   Get Gateway IDs                 GetGwIdRsp           0x0013
   RESERVED                                                     0x8014-0x80FF
   Vendor Specific                                              0x8100-0x81FF
   RESERVED                                                     0x8200-0xFFFF

5.2     NODE Requirements

5.3     Attribute Descriptions for Discovery Domain Registration

   Discovery Domains are logical groupings of initiators and targets
   that are used to limit the login process to the appropriate subset
   of services registered in the OpenVNET.

   Support for Discovery Domains is required for all protocols.  The
   OpenVNET attributes for Discovery Domain, and Discovery Domain Set,
   registration are shown in the following figure:

   DISCOVERY DOMAIN SET
     |
     - DD Set_ID
     - DD Set_Symbolic Name
     - DD Set Enabled/Disabled

   DD SET_MEMBER
     |
     - DD Set_ID
     - DD_ID

   DISCOVERY DOMAIN
     |
     - DD_ID
     - DD_Symbolic Name

   DD_MEMBER
     |
     - DD_ID
     - Entity Identifier, .VNET Name, or WWPN

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

      - .VNET Name      : this places the individual .VNET
                      storage node in the Discovery Domain
      - WWPN          : this places the Virtual Channel Node in the
                      Discovery Domain

5.4     Use of TCP For OpenVNET .VNET Communication

   TCP can be used for all OpenVNET communication.  The OpenVNET server SHALL
   accept TCP connections for client registrations.  The TCP port used
   by the OpenVNET server to receive TCP messages used SHALL be <<TBD>>.
   The client can also use multiple streams to register attributes and
   communicate with the server.

   To register for ESI monitoring using TCP, the client SHALL register
   the .VNET LOCAL DAEMON ESI Interval using the TCP connection that will be
   used to receive ESI inquiry messages.

   To register for SCN notifications using TCP, the client SHALL
   register the .VNET/Virtual Channel SCN Bitmap using the TCP connection that
   SHALL be used to receive SCN notification messages.

   This allows the client to be flexible about how many and which
   connections will be used for each feature.  Using the above method,
   a client can optionally open one stream and use it for SCN, ESI, and
   OpenVNET queries.  A client may also open up 3 sessions: one for ESI,
   one for SCN, and another for OpenVNET queries.

   If a TCP connection supporting ESI or SCN messages goes down, and
   the client creates a new connection for the ESI or SCN messages,
   then the client must reregister for ESI\'s and/or SCN\'s on the new
   connection.

5.5     Use of UDP For OpenVNET .VNET Communication

   The OpenVNET server MAY accept UDP messages for client registrations.
   The OpenVNET server SHALL accept registrations from clients requesting
   UDP-based ESI and SCN messages.  The UDP port used to receive
   messages SHALL be <<TBD>>.

   To register for UDP-based ESI monitoring messages, the client SHALL
   register the .VNET LOCAL DAEMON ESI/SCN UDP Port to be used for communication
   of ESI messages from the server to the client.

   To register for UDP-based SCN notifications messages, the client
   SHALL register at least one .VNET LOCAL DAEMON ESI/SCN UDP port to be used
   for communication of SCN messages from the server to the client.  If an
   entity has multiple .VNET LOCAL DAEMONs with registered ESI/SCN UDP Ports,
   then ESI and SCN messages SHALL be delivered to each .VNET LOCAL DAEMON 
registered to receive such messages.

6.   OpenVNET .VNET Message Attributes

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

6.1     OpenVNET .VNET Attribute Summary

   The following table lists all .VNETP message attributes for service
   registration and queries:

        (TBS)

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

        (TBS)

        A well-formed registration contains the key of the object to
   register, or no key if it can be generated by the OpenVNET.  If an
   attribute is present as a key, then it cannot be an operating
   attribute.

   The registration response will contain the key for each object
   registered, including any key values that were assigned by the OpenVNET
   as part of the registration.  For example, if an entity, two
   .VNET LOCAL DAEMONs, and one Virtual Channel node was registered, then the
   response message key attributes section would contain the keys for each.  The
   key attributes, returned in the response, may be in a different order
   they appeared in the registration.

   OpenVNET client attributes are defined below.

6.2     Virtual Entity Identifier-Token Keyed Attributes

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

6.2.1   Virtual Entity Identifier (VEID)

   The Entity Identifier is a variable length identifier that uniquely
   identifies each network entity registered in the OpenVNET.  The
   attribute length varies from 4 to 256 bytes, and is a unique value
   within the OpenVNET.

   If the OpenVNET client does not provide an EID during registration the
   OpenVNET shall generate one that is unique within the OpenVNET.  If an EID
   is to be generated, then the EID attribute value in the registration
   message shall be empty (0 length).  The generated EID shall be
   returned in the registration response.

   By convention, OpenVNET generated EIDs begin with the string OpenVNET:???
   (where ??? might be a SHA-1 hashed OID + RLS + WWNP or WWNN).
   If an EID is registered by a client beginning with the string
   OpenVNET:??? then the OpenVNET server SHALL not assign the value to another
   entity.

6.2.2   Virtual Entity Protocol

   Entity Protocol is a required 4-byte attribute that indicates the
   protocol of network entity that is being registered and is provided
   by the OpenVNET client.  The valid types are defined as below:

        (TBS)

6.2.3   Management IP Address

   This optional field is provided by the OpenVNET 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.2.4   Entity Registration Timestamp

   This field is updated by the OpenVNET.  It cannot be used as a query key
   or be explicitly registered.  It indicates the time the entity
   registration occurred, an associated object was updated, or the time
   of the most recent response to an Entity Status Inquiry message,
   whichever is later. The time format is, in seconds, the update
   period since the standard base time of 00:00:00 GMT on January 1,
   1970.

6.2.5   Protocol Version Range

   This optional field is provided by the OpenVNET client.  This field
   contains the minimum and maximum version of the protocol supported
   by the entity.  The most significant two bytes contain the maximum
   version supported, and the least significant two bytes contain the
   minimum version supported.  If a range is not registered then the
   entity is assumed to support all versions of the protocol.


6.2.6   Registration Period

   This required field, provided by the OpenVNET client, indicates the
   maximum period, in seconds, that the entity registration will be
   maintained by the server without an update or ESI response from the
   client.  If the Registration Period is set to 0, then the Entity
   SHALL NOT be deregistered as a result of no update messages from the
   client.

   To refresh the registration, the OpenVNET client may perform a re-
   registration with the update flag set, which updates any field of
   the registration.

   Byte 0 and 1 represents the entity registration period, in seconds.
   Byte 2 and 3 are reserved.

   If ESI support is requested as part of a .VNET LOCAL DAEMON registration, the
   ESI Response message received by the server SHALL act as an
   alternative to an update of the entity registration.

   If ESI messages are not requested by an entity and the Registration
   Period is not set to 0, then the entity registration SHALL be
   removed if the client does not update the registration before the
   registration period has expired.

6.2.7   Entity Certificate

   This attribute contains an X.509 certificate that is bound to the
   NETWORK ENTITY of the OpenVNET client. This certificate is uploaded and
   registered to the OpenVNET 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 OpenVNET client and server, as well as to key
   the authentication block in the .VNETP.  The maximum size of this
   variable length field is implementation dependent.

6.3   .VNET LOCAL DAEMON-Token Keyed Attributes

   The following .VNET LOCAL DAEMON attributes are registered in the OpenVNET
   using the combined .VNET LOCAL DAEMON IP-Address and .VNET LOCAL DAEMON
   TCP/UDP Port as the key.  Each .VNET LOCAL DAEMON is associated with one
   Entity Identifier object key.

6.3.1   .VNET LOCAL DAEMON IP-Address

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

6.3.2   .VNET LOCAL DAEMON TCP/UDP Port

   The TCP/UDP port of the .VNET LOCAL DAEMON through which a NODE can
   transmit and receive storage data.  This required 4 byte field is
   provided by the OpenVNET client.  Bit 0 to 15 represents the TCP/UDP
   port number.  Bit 16 represents the port type.  If bit 16 is set the
   port type is UDP. Otherwise it is TCP.  Bits 17 to 31 are reserved.

   If the field value is 0, then the port number is the implied
   canonical port number and type of the protocol indicated by the
   associated Entity Protocol.

   The .VNET LOCAL DAEMON IP-Address along with the .VNET LOCAL DAEMON TCP/UDP
   Port number uniquely identifies a .VNET LOCAL DAEMON.

6.3.3   .VNET LOCAL DAEMON Token

   This is an optional, variable-length text-based value from 0 to 256
   bytes.  The text field contains user-readable UTF-8 text, and is
   terminated with at least one NULL character. The .VNET LOCAL DAEMON Symbolic
   Name is a user-readable description of the .VNET LOCAL DAEMON entry in the
   OpenVNET.

6.3.4   Entity Status Inquiry Interval

   This optional field is provided by the OpenVNET client.  It indicates
   the minimum time, in seconds, between Entity Status Inquiry (ESI)
   messages sent from the OpenVNET to this entity .VNET LOCAL DAEMON.  ESI
   messages can be used to verify that a .VNET LOCAL DAEMON registration
   continues to be valid.

   To request monitoring by the OpenVNET, an OpenVNET client registers a non-
   zero value for this .VNET LOCAL DAEMON attribute using a RegDevAttr message.

   If the OpenVNET does not receive an ESI response message from a .VNET LOCAL
   DAEMON after having sent no more than three ESI messages, then the .VNET
   LOCAL DAEMON SHALL be deregistered.

   If all .VNET LOCAL DAEMONs associated with an entity that have registered for
   ESI messages are deregistered due to non-response, then the entity
   SHALL be deregistered.

   If the OpenVNET is unable to support ESI messages, it SHALL reject the
   ESI request by returning an \"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.

6.3.5   ESI/SCN UDP Port

   This optional field is provided by the OpenVNET client.  If the client
   requires UDP based ESI monitoring or SCN notification, it SHALL
   register the UDP port to be used for communication from the server
   to a client .VNET LOCAL DAEMON. Bit 0 to 15 represents the UDP port number.
   Bits 16 to 31 are reserved.

   If an entity node registers for SCN notifications with a UDP
   message, at least one entity .VNET LOCAL DAEMON shall have a registered
   ESI/SCN UDP port number.  The OpenVNET server will return an error for an SCN

   registration if no ESI/SCN port has been registered.  If multiple
   .VNET LOCAL DAEMONs have a registered ESI/SCN UDP port, then SCN data MAY be
   delivered to any of the available registered .VNET LOCAL DAEMONs.

6.3.6   .VNET LOCAL DAEMON Delegating Group

   This optional field is provided by the OpenVNET client.  The .VNET LOCAL 
DAEMON
   Group is used to group .VNET LOCAL DAEMONs into aggregation groups.  All
   entity .VNET LOCAL DAEMONs that belong to the same .VNET LOCAL DAEMON Group
   can  provide connections to the same NODE.  This allows multiple sessions to
   be established to a node through multiple .VNET LOCAL DAEMONs. The least
   significant two bytes contain the .VNET LOCAL DAEMON Group for the .VNET
   LOCAL DAEMON.  The most significant two bytes are reserved.

6.3.7   .VNET LOCAL DAEMON Certificate

   This attribute contains an X.509 certificate that is bound to the
   .VNET LOCAL DAEMON of the OpenVNET client.  This certificate is used to
   identify and authenticate communications to the IP address supported by the
   .VNET LOCAL DAEMON. This certificate MAY be used to set up the authenticating
   SA supporting the authentication block for .VNETP messages originated
   from the .VNET LOCAL DAEMON IP Address.

6.4     OpenVNET .VNET WEBSERVICE Object Node-Keyed Attributes

   The following attributes are registered in the OpenVNET using the OpenVNET 
.VNET
   WEBSERVICE Object Node World Wide Port Name (WWPN) attribute as the key.

   Each set of OpenVNET .VNET WEBSERVICE Object Node-Keyed attributes is 
associated with one Entity Identifier object key.

   Although the OpenVNET .VNET WEBSERVICE Object Node WWPN is associated with 
one
   Entity Identifier, it is globally unique.

6.4.1   OpenVNET .VNET WEBSERVICE Object Node Port Name

   This 64-bit identifier uniquely defines the OpenVNET .VNET WEBSERVICE Object
   Node, and is the World Wide Port Name (WWPN) of the corresponding Virtual
   Channel service.  This globally unique identifier is used during the service
   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.4.2   Port ID

   Along with the IP Address, this field uniquely identifies a native
   Virtual Channel service port in the network, and maps one-to-one to a
   specific Port Name (WWPN) entry.  The Port ID is used for OpenVNET .VNET
   WEBSERVICE Object based storage services.

6.4.3   Port Type

   Indicates the type of OpenVNET .VNET WEBSERVICE Object node port.  This is
   provided by the OpenVNET client.  Encoded values for this field are listed in
   the following table:

   Type           Description
   ----           -----------
   0x0000         Unidentified/Null Entry
   0x0004-0080     RESERVED
   0x0083         RESERVED
   0x0085-00FF     RESERVED
   0xFF12         OpenVNET .VNET WEBSERVICE Object Port
   0xFF13-FFFF     RESERVED

6.4.4   OpenVNET .VNET WEBSERVICE Object Node Port Token

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

6.4.5   OpenVNET .VNET WEBSERVICE Object Node Port Name

   This 64-bit identifier uniquely defines the fabric port.  If the
   OpenVNET client is attached to a Virtual 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 .VNETP for
   compatibility with Virtual Channel fabric services and topologies.

   The client Port may itself be registered as a port in the OpenVNET.  In
   that case, the Local Daemon Port Name (LWWN) attribute of service attached
   ports will match the Port Name (WWPN) of the client Port registration.

6.4.6   OpenVNET .VNET WEBSERVICE Object Proxy

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

6.4.7   OpenVNET .VNET WEBSERVICE Object Port IP Address

   The Virtual Channel IP address associated with the OpenVNET .VNET WEBSERVICE
   Object Node.  This optional field is included for compatibility with Virtual 
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 OpenVNET
   client.

6.4.8   OpenVNET .VNET WEBSERVICE Object Class of Service (COS)

   This 32-bit bit-map field indicates the Virtual Channel COS types that
   are supported by the registered port.  This field is provided by a
   Virtual Channel-based OpenVNET client.  The COS values are equivalent to
   Virtual 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.4.9   OpenVNET .VNET WEBSERVICE Object Types

   This 32-byte field indicates the VNETP protocol types supported by
   the associated port.  This field for OpenVNET .VNET WEBSERVICE Object Node is
   provided by the OpenVNET client.  This field can be used to support Virtual
   Channel.

6.4.10   OpenVNET .VNET WEBSERVICE Object Descriptor

   A variable-length text-based description of up to 256 bytes, that is
   associated with the OpenVNET-registered service port in the network.
   This optional field for OpenVNET .VNET WEBSERVICE Object ports is provided by
   the OpenVNET client.

   This field can be used to support Virtual Channel services.  This field
   can be used to support Virtual Channel .

6.4.11   OpenVNET .VNET WEBSERVICE Object Features

   This is a 128-byte array, 4 bits per type, for the VNETP protocol
   types supported by the associated port.  This optional field for
   OpenVNET .VNET WEBSERVICE Object ports is provided by the OpenVNET client.  
This
   field can be used to support Virtual Channel.

6.4.12   OpenVNET .VNET WEBSERVICE Object Node SCN Bitmap

   This optional field is provided by the OpenVNET client.  It indicates
   the events that the OpenVNET .VNET WEBSERVICE Object Node 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 CLIENT REGISTRATION PARAMETERS
      3           CLIENT ADDED
      4           CLIENT REMOVED
   All others reserved.

6.4.13   OpenVNET .VNET WEBSERVICE Object Node Certificat





reply via email to

[Prev in Thread] Current Thread [Next in Thread]