[Docs] [txt|pdf] [Tracker] [Email] [Diff1] [Diff2] [Nits]
Versions: 00 01 02 draft-ietf-nfsv4-versioning
NFSv4 T. Haynes
Internet-Draft Primary Data
Intended status: Standards Track D. Noveck
Expires: April 13, 2015 Dell
October 10, 2014
NFSv4 Version Management
draft-haynes-nfsv4-versioning-01
Abstract
This document describes the management of versioning within the NFSv4
family of protocols. It covers the creation of minor versions, the
addition of OPTIONAL features to existing minor versions, and the
correction of flaws in features already published as Proposed
Standards. The rules for minor versioning set out in this document
supersede the multiple sets of minor versioning rules in RFC3530 and
RFC5661.
Requirements Language
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 [RFC2119].
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on April 13, 2015.
Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved.
Haynes & Noveck Expires April 13, 2015 [Page 1]
Internet-Draft NFSv4 Version Management October 2014
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Consolidation of the Minor Version Rules . . . . . . . . . . 3
4. The Minor Versioning Rules . . . . . . . . . . . . . . . . . 4
5. Extensions within Minor Versions . . . . . . . . . . . . . . 7
5.1. Feature Specification Documents . . . . . . . . . . . . . 7
5.2. Additional Informational Documents . . . . . . . . . . . 9
5.3. Relationship Between Minor Versioning and Extensions
within a Minor Version . . . . . . . . . . . . . . . . . 11
6. Correction of Existing Minor Versions and Features . . . . . 12
7. Security Considerations . . . . . . . . . . . . . . . . . . . 14
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 14
9.1. Normative References . . . . . . . . . . . . . . . . . . 14
9.2. Informative References . . . . . . . . . . . . . . . . . 14
Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 14
Appendix B. RFC Editor Notes . . . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15
1. Introduction
To address the requirement of an NFS protocol that can evolve as the
need arises, the Network File System (NFS) version 4 (NFSv4) protocol
contains the rules and framework to allow for future minor changes or
versioning. These versioning rules SHOULD maintain compatibility
with existing clients and servers.
A large portion of such changes will be part of new minor versions.
The COMPOUND procedure (see Section 14.2 of [RFC3530]) specfies the
minor version being used by the client. The CB_COMPOUND (see
Section 15.2 of [RFC3530]) procedure specifies the minor version
being used by the server on callbacks.
Each minor version is specified by one or more standards track RFC:
Minor version 0 is specified by [RFC3530]
Haynes & Noveck Expires April 13, 2015 [Page 2]
Internet-Draft NFSv4 Version Management October 2014
Minor version 1 is specified principally by [RFC5661]
Minor version 2 is specified principally by [NFSv42].
In addition to the creation of new minor versions, two other sorts of
versioning are discussed in this document:
o Addition of OPTIONAL features to existing minor versions.
o XDR-based extensions used to correct protocol bugs in existing
minor versions or associated features.
2. Terminology
A basic familiarity with the NFSv4 terminology is assumed in this
document, the reader is pointed to [RFC3530].
3. Consolidation of the Minor Version Rules
Previously, versioning rules had been being maintained and specified
in the Standards Track RFCs, defining the individual minor versions.
As a result, versioning rules were modified on an ad hoc basis for
each new minor version.
This document defines a set of versioning rules, including rules for
minor version construction, that applies to the NFSv4 protocol as a
whole. The rules are subject to change but any such change should be
part of a standards track RFC obsoleting or updating this document.
This document supersedes the minor versioning rules appearing in the
minor version specification RFC's. As a result potential conflicts
among these documents should be addressed as follows:
o The specification of the actual protocols for minor versions
previously published as Proposed Standards take precedence over
minor versioning rules in either this document or in the minor
version specification RFC's. In other words, if the transition
from version A to version B violates a minor versioning rules, the
protocol stays as it is.
o Otherwise, any conflict between the minor versioning rules in this
document and those in minor version specification RFC's are to be
resolved based on the treatment in this document.
Future minor version specification documents should avoid specifying
minor versioning rules and reference this document in connection with
rules for minor versions.
Haynes & Noveck Expires April 13, 2015 [Page 3]
Internet-Draft NFSv4 Version Management October 2014
4. The Minor Versioning Rules
The following items represent the basic rules for the development of
minor versions.
1. Procedures are not added or deleted.
To maintain the general Remote Procedure Call (RPC) model, NFSv4
minor versions will not add to or delete procedures from the NFS
program.
2. Minor versions may add operations to the COMPOUND and
CB_COMPOUND procedures.
The addition of operations to the COMPOUND and CB_COMPOUND
procedures does not affect the RPC model.
* Minor versions may append attributes to the bitmap4 that
represents sets of attributes and to the fattr4 that
represents sets of attribute values.
This allows for the expansion of the attribute model to allow
for future growth or adaptation.
* Minor version X must append any new attributes after the last
documented attribute.
Since attribute results are specified as an opaque array of
per-attribute, XDR-encoded results, the complexity of adding
new attributes in the midst of the current definitions would
be too burdensome.
3. Minor versions must not modify the structure of an existing
operation's arguments or results.
Again, the complexity of handling multiple structure definitions
for a single operation is too burdensome. New operations should
be added instead of modifying existing structures for a minor
version.
This rule does not preclude the following adaptations in a minor
version:
Haynes & Noveck Expires April 13, 2015 [Page 4]
Internet-Draft NFSv4 Version Management October 2014
* adding bits to flag fields, such as new attributes to
GETATTR's bitmap4 data type, and providing corresponding
variants of opaque arrays, such as a notify4 used together
with such bitmaps
* adding bits to existing attributes like Access Control Lists
(ACL) that have flag words
* extending enumerated types (including NFS4ERR_*) with new
values
* adding cases to a switched union
4. Note that when adding new cases to a switched union, a minor
version must not make new cases be REQUIRED. While the
encapsulating operation may be REQUIRED, the new cases (the
specific arm of the discriminated union) is not. The error code
NFS4ERR_UNION_NOTSUPP is used to notify the client when the
server does not support such a case.
5. Minor versions must not modify the structure of existing
attributes.
6. Minor versions must not delete operations.
This prevents the potential reuse of a particular operation
"slot" in a future minor version.
7. Minor versions must not delete attributes.
8. Minor versions must not delete flag bits or enumeration values.
9. Minor versions may declare an operation MUST NOT be implemented.
Specifying that an operation MUST NOT be implemented is
equivalent to obsoleting an operation. For the client, it means
that the operation MUST NOT be sent to the server. For the
server, an NFS error can be returned as opposed to "dropping"
the request as an XDR decode error. This approach allows for
the obsolescence of an operation while maintaining its structure
so that a future minor version can reintroduce the operation.
1. Minor versions may declare that an attribute MUST NOT be
implemented.
Haynes & Noveck Expires April 13, 2015 [Page 5]
Internet-Draft NFSv4 Version Management October 2014
2. Minor versions may declare that a flag bit or enumeration
value MUST NOT be implemented.
10. Minor versions may declare an operation to be OBSOLESCENT, which
indicates an intention to remove the operation (i.e., make it
MANDATORY TO NOT implement) in a subsequent minor version. Such
labeling is separate from the question of whether the operation
is REQUIRED or RECOMMENDED or OPTIONAL in the current minor
version. An operation may be both REQUIRED for the given minor
version and marked OBSOLESCENT, with the expectation that it
will be MANDATORY TO NOT implement in the next (or other
subsequent) minor version.
11. Note that the early notification of operation obsolescence is
put in place to mitigate the effects of design and
implementation mistakes, and to allow protocol development to
adapt to unexpected changes in the pace of implementation. Even
if an operation is marked OBSOLESCENT in a given minor version,
it may end up not being marked MANDATORY TO NOT implement in the
next minor version. In unusual circumstances, it might not be
marked OBSOLESCENT in a subsequent minor version, and never
become MANDATORY TO NOT implement.
12. Minor versions may downgrade features from REQUIRED to
RECOMMENDED, from RECOMMENDED to OPTIONAL, or from OPTIONAL to
MANDATORY TO NOT implement. Also, if a feature was marked as
OBSOLESCENT in the prior minor version, it may be downgraded
from REQUIRED to OPTIONAL from RECOMMENDED to MANDATORY TO NOT
implement, or from REQUIRED to MANDATORY TO NOT implement.
13. Minor versions may upgrade features from OPTIONAL to
RECOMMENDED, or RECOMMENDED to REQUIRED. Also, if a feature was
marked as OBSOLESCENT in the prior minor version, it may be
upgraded to not be OBSOLESCENT.
14. A client and server that support minor version X SHOULD support
minor versions 0 through X-1 as well.
15. Except for infrastructural changes, a minor version must not
introduce REQUIRED new features.
This rule allows for the introduction of new functionality and
forces the use of implementation experience before designating a
feature as REQUIRED. On the other hand, some classes of
features are infrastructural and have broad effects. Allowing
infrastructural features to be RECOMMENDED or OPTIONAL
complicates implementation of the minor version.
Haynes & Noveck Expires April 13, 2015 [Page 6]
Internet-Draft NFSv4 Version Management October 2014
16. A client MUST NOT attempt to use a stateid, filehandle, or
similar returned object from the COMPOUND procedure with minor
version X for another COMPOUND procedure with minor version Y,
where X != Y.
5. Extensions within Minor Versions
An important goal of this document is to enable extensions to be made
to the set of features included in an existing minor version, without
the overhead attendant upon the creation of an entirely new minor
version.
5.1. Feature Specification Documents
Each such extension will be in the form of a working-group standards-
track document which defines a new optional feature. The definition
of the new feature may include one or more "feature elements" which
add to the existing XDR in ways already discussed in connection with
the creation of new minor versions. Other sorts of XDR modification
are not allowed. Feature elements include new operations, callbacks,
attributes, and enumeration values. The functionality of some
existing operations may be extended by the addition of new flags bits
in existing flag words and new cases in existing switched unions.
New error codes may be added but the set of valid error codes to be
returned by an operation is fixed, except that existing operations
may return new errors to respond to situations that only arise when
previously unused flag bits are set or when extensions to a switched
union are used.
Such an additional feature will become, for all intents and purposes,
part of the current NFSv4 minor version upon publication of the
description as a Proposed Standard, enabling such extensions to be
used by new client and server implementations without, as previously
required, a change in the value of the minor version field within the
COMPOUND operation.
The working group has two occasions to make sure that such features
are appropriate ones:
o At the time the feature definition document becomes a working
group document, the working group needs to determine, in addition
to the feature's general compatibility with NFSv4, that the XDR
assignments (i.e., additional values for operation callback and
attribute numbers, and for new flags and switch values to be added
to existing operations) associated with the new feature are
complete and do not conflict with those in the existing protocol
or those currently under development.
Haynes & Noveck Expires April 13, 2015 [Page 7]
Internet-Draft NFSv4 Version Management October 2014
o At the time the working group document is complete, the working
group, in addition to normal document review, can and should look
at what prototype implementations of the feature have been done
and use that information to determine the work-ability and
maturity of the feature.
Such feature definition documents would contain a number of items,
following the pattern of the NFSv4.2 specification. The only
difference would be that while the NFSv4.2 specification defines a
number of features to be incorporated in NFSv4.2, the feature
definition documents would each define a single feature.
In addition to a general explanation of the feature in question, the
items to be included in such feature definition documents would be:
o Description of new operations (corresponding to Sections 16 and 17
of [NFSv42]).
o Description of any modified operations (corresponding to
Section 15 of [NFSv42]).
o Description of new attributes (corresponding to Section 13 of
[NFSv42]).
o Description of any added error codes (corresponding to
Section 12.1 of [NFSv42]).
o A summary description of all changes made by this feature to the
XDR definition of the protocol, including operation codes,
attribute numbers, added flag bits and enumeration values, and
request and response structures for new operations together with
the other XDR extensions needed to support them.
o A listing giving the valid errors for each new operation and
callback (corresponds to Sections 12.2 and 12.3 of [NFSv42]).
o A table giving for each new feature element its status (always
OPTIONAL), and its relationship to the feature being described
(i.e., REQUIRED for every implementation of the feature, or
OPTIONAL in the presence of the feature). This would be similar
to the material in Section 14 of [NFSv42] but it is restricted to
a single feature and expanded in scope to include all feature
elements.
o All of the Sections required for RFC publication, such as
"Security Considerations", "IANA considerations", etc.
Haynes & Noveck Expires April 13, 2015 [Page 8]
Internet-Draft NFSv4 Version Management October 2014
Addition of features to an existing minor version will take advantage
of the existing NFSv4 infrastructure that allows optional features to
be added to new minor versions, but without in this case requiring
any change in the minor version number. Adding features in this way
will enable compatibility with existing clients and servers, who may
be unaware of the new feature. In particular:
o Existing server implementations will return NFS4ERR_NOTSUPP or
NFS4ERR_OP_ILLEGAL in response to any use of a new operation,
allowing the client to determine that the requested operation (and
potentially the feature in question) is not supported by the
server.
o Clients can determine whether particular new attributes are
supported by a given server by examining the value returned when
the supported_attr attribute is interrogated.
o New callbacks will only be sent to clients that have used the new
features associated with them, allowing existing clients to be
unaware of their existence.
o Existing server implementations that do not recognize new flag
bits will return NFS4ERR_INVAL, enabling the client to determine
that the new flag value is not supported by the server.
o Existing server implementations that do not recognize the new arm
of a switched union will return NFS4ERR_INVAL or
NFS4ERR_UNION_NOTSUPP, enabling the client to determine that the
the new union arm is not supported by the server.
o Error values returned to the client for all requests that do not
use new features will only be those previously allowed. Only when
the client uses a new feature will a previously invalid error
value be returned.
Given that some existing servers may have XDR parsing implementations
that cannot easily accommodate previously unknown operations or
switched union arms, clients should carefully determine whether
particular features are supported by the server before proceeding to
use them and need to be prepared to treat NFS4ERR_BADXDR as
indicating non-support of a new operation or switched union arm where
server support for a particular feature is being tested.
5.2. Additional Informational Documents
Additional documents will be required from time to time. The purpose
of these documents will be to organize existing material so that an
implementer will not have to scan a large set of feature definition
Haynes & Noveck Expires April 13, 2015 [Page 9]
Internet-Draft NFSv4 Version Management October 2014
document or minor version specifications to find information being
sought.
The frequency of updates for such documents will be affected by
implementer needs and the ability to easily generate such documents,
preferably by automated means. These documents will be informational
documents whose purpose is to simplify use of the standards-track
documents. Some desirable elements would include:
o An updated XDR for the protocol as a whole including feature
elements from all features and minor versions accepted as Proposed
Standards.
o A consolidated list of XDR assignments of values (e.g., operation
codes, attribute numbers, error codes, new flag bits, enumeration
extensions) for all features under development (i.e., accepted as
working-group standards-track documents but not yet published or
abandoned).
o A list of all feature definition documents that have been approved
as working group documents but have not yet been approved as
Proposed Standards.
o A table mapping operations and callbacks to the most recent
document containing a description of that operation.
o A table mapping attributes to the most recent document containing
a description of that attribute.
o A table giving, for each operation in the protocol, the errors
that may validly be returned for that operation. If possible, it
would be desirable to give, as does [RFC5661], the operations
which may validly return each particular error.
o A table giving for each operation, callback, and attribute and for
each feature element in a published extension giving its status
OPTIONAL, REQUIRED, RECOMMENDED, MANDATORY to NOT implement), and
its relationship to the feature which allows its inclusion (i.e.,
REQUIRED for every implementation of the feature, or OPTIONAL in
the presence of the feature). This would be similar to the
material in Section 14 of [NFSv42], expanded in scope to include
all feature elements, and updated to include all published
features that are part of the current NFSv4 minor version, at the
date of publication.
The informational documents described above are desirable, given that
minor versions beyond NFSv4.1 are not fully described in a single
document. Instead of a single document describing a minor version,
Haynes & Noveck Expires April 13, 2015 [Page 10]
Internet-Draft NFSv4 Version Management October 2014
there will be a number and that number can be expected to grow, as
protocol development continues.
5.3. Relationship Between Minor Versioning and Extensions within a
Minor Version
Extensibility of minor version are governed by the following rules:
o Minor versions zero and one are not extensible. Each has a fixed
set of optional features as described in [RFC3530bis] and
[RFC5661].
o Minor versions beyond one are presumed extensible as discussed
herein. However, any statement within the minor version
specification disallowing extension will cause that minor version
to be considered non-extensible.
o No new feature may be added to a minor version may be made once
the specification document document for a subsequent minor version
becomes a working group standards-track document.
Even when a minor version is non-extensible, or when a previous minor
version is closed to further extension, the features that it contains
are still subject to updates to effect protocol corrections. In many
cases, making an XDR change, in the form of an extension will be the
best way of correcting the issue. See Section 6 for details.
While making minor versions extensible will decrease the frequency of
new minor versions, it will not eliminate the need for them. In
particular:
o A new minor version will be required for any change in the status
of a feature element (i.e., an operation, callback, attribute,
added flag or switch case). For example, changes which make
feature elements Recommended, Required or Mandatory to Not
Implement will require a minor version.
o Any incompatible semantic change in the required or allowed
processing of an existing operation or attribute will require a
minor version.
o Any change that extends the set of errors returned that an
existing operation, with the exception noted above. New errors
may be added when the conditions that give rise to these new
errors cannot arise as long as new flag bits or switched union
arms are not used. I.e., when it is clear that existing client
cannot receive these errors.
Haynes & Noveck Expires April 13, 2015 [Page 11]
Internet-Draft NFSv4 Version Management October 2014
o Any change in the mapping of feature elements to features will
require a minor version. For example, if a feature is to be split
into two separate features clients would no longer be able to
infer support for one operation from support for the other, in the
same way that had been done previously, invalidating logic in
existing clients.
6. Correction of Existing Minor Versions and Features
The possibility always exists that there will be a need to correct an
existing feature in some way, after the acceptance of that feature,
or a minor version containing it, as a Proposed Standard. While the
working group can reduce the probability of such situations arising
by waiting for running code before considering a feature as done, it
cannot reduce the probability to zero. As features are used more
extensively and interact with other features, previously unseen flaws
may be discovered and will need to be corrected.
Such corrections are best done in a bis document updating the RFC
defining the relevant feature definition document or minor version
specification. In making such correction, the working will have to
carefully consider how to assure interoperability with older clients
and servers.
Often, corrections can be done without changing the protocol XDR.
However, incompatible changes in server or client behavior should not
be mandated in order to avoid XDR changes. When XDR changes are
necessary as part of correcting a flaw, these should be done in a
manner similar to that used when implementing new minor versions or
features within them. In particular,
o Existing XDR structure may not be modified or deleted.
o XDR extensions to may be used to correct existing protocol
facilities in a manner similar to those used to add additional
OPTIONAL features. Such corrections may be done in an otherwise
non-extensible minor version, if the working group judges it
appropriate.
o When a correction is made to an OPTIONAL feature, the result is
similar to a situation in which there are two independent OPTIONAL
features. A server may choose to implement either or both.
o When a correction is made to a MANDATORY feature, the situation
becomes one in which neither the old nor the new new version of
the feature is MANDATORY. Instead, it is MANDATORY that a server
support at least one of the two, while each is individually
OPTIONAL. Although use of the corrected version is ultimately
Haynes & Noveck Expires April 13, 2015 [Page 12]
Internet-Draft NFSv4 Version Management October 2014
better, it is not RECOMMENDED, since the choice of which version
to support if only one is supported will depend on the needs of
clients, which may be slow to adopt the updated version.
o When a correction is made to a RECOMMENDED feature, the situation
is similar to the case of a MANDATORY feature. Neither version is
RECOMMENDED, Neither the old nor the new version of the feature is
RECOMMENDED. Instead, it is RECOMMENDED that a server support at
least one of the two, while each is individually OPTIONAL.
o In all of the cases above, it is appropriate that the old version
of the feature, be considered OBSOLESCENT, with the expectation
that the working group might, in a later minor version, decide
that the older version is to become MANDATORY to NOT implement.
By doing things this way, the protocol with the XDR modification can
accommodate clients and servers that support either the corrected or
the uncorrected version of the protocol and also clients and servers
aware of and capable of supporting both alternatives.
o A client that supports only the earlier version of the feature
(i.e., an older unfixed client) can determine whether the server
it is connecting to supports the older version of feature. It is
capable of interoperating with older servers that support only the
unfixed protocol as well as ones that support both versions.
o A client that supports only the corrected version of the feature
(i.e., a new or updated client) can determine whether the server
it is connecting to supports the newer version of the feature. It
is capable of interoperating with newer servers that support only
the updated feature as well as ones that support both versions.
o A client that supports both the older and newer version of the
feature can determine which version of the particular feature is
supported by the server it is working with.
o A server that supports only the earlier version of the feature
(i.e., an older unfixed server) can only successfully interoperate
with older clients. However newer clients can easily determine
that the feature cannot be used on that server.
o A server that supports only the newer version of the feature
(i.e., a new or updated server) can only successfully interoperate
with newer clients. However, older clients can easily determine
that the feature cannot be used on that server. In the case of
OPTIONAL features, clients can be expected to deal with non-
support of that particular feature.
Haynes & Noveck Expires April 13, 2015 [Page 13]
Internet-Draft NFSv4 Version Management October 2014
o A server that supports both the older and newer versions of the
feature can interopt with all client variants.
By using extensions in this manner, the protocol creates clear path
which preserves the functioning of existing clients and servers and
allowing client and server implementers to adopt the new version of
the feature at a reasonable pace.
7. Security Considerations
There are no security considerations in this document.
8. IANA Considerations
There are no IANA considerations in this document.
9. References
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", March 1997.
[RFC3530] Shepler, S., Callaghan, B., Robinson, D., Thurlow, R.,
Beame, C., Eisler, M., and D. Noveck, "Network File System
(NFS) version 4 Protocol", RFC 3530, April 2003.
[RFC3530bis]
Haynes, T. and D. Noveck, "Network File System (NFS)
version 4 Protocol", draft-ietf-nfsv4-rfc3530bis-33 (Work
In Progress), April 2014.
[RFC5661] Shepler, S., Eisler, M., and D. Noveck, "Network File
System (NFS) Version 4 Minor Version 1 Protocol", RFC
5661, January 2010.
9.2. Informative References
[NFSv42] Haynes, T., "NFS Version 4 Minor Version 2", draft-ietf-
nfsv4-minorversion2-27 (Work In Progress), September 2014.
Appendix A. Acknowledgments
Appendix B. RFC Editor Notes
[RFC Editor: please remove this section prior to publishing this
document as an RFC]
Haynes & Noveck Expires April 13, 2015 [Page 14]
Internet-Draft NFSv4 Version Management October 2014
[RFC Editor: prior to publishing this document as an RFC, please
replace all occurrences of RFCTBD10 with RFCxxxx where xxxx is the
RFC number of this document]
Authors' Addresses
Thomas Haynes
Primary Data, Inc.
4300 El Camino Real Ste 100
Los Altos, CA 94022
USA
Phone: +1 408 215 1519
Email: thomas.haynes@primarydata.com
David Noveck
Dell
300 Innovative Way
Nashua, NH 03062
US
Phone: +1 781 572 8038
Email: dave_noveck@dell.com
Haynes & Noveck Expires April 13, 2015 [Page 15]
Html markup produced by rfcmarkup 1.129b, available from
https://tools.ietf.org/tools/rfcmarkup/