Internet DRAFT - draft-kline-mif-mpvd-api-reqs
draft-kline-mif-mpvd-api-reqs
Internet Engineering Task Force E. Kline
Internet-Draft Google Japan KK
Intended status: Informational November 01, 2015
Expires: May 04, 2016
Multiple Provisioning Domains API Requirements
draft-kline-mif-mpvd-api-reqs-00
Abstract
RFC 7556 [RFC7556] provides the essential conceptual guidance an API
designer would need to support use of PvDs. This document aims to
capture the requirements for an API that can be used by applications
that would be considered "advanced", according to section 6.3 [1] of
RFC 7556 [RFC7556]. The "basic" [2] and "intermediate" [3] API
support levels can in principle be implemented by means of layers
wrapping the advanced API.
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 May 04, 2016.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
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
Kline Expires May 04, 2016 [Page 1]
Internet-Draft MPvD API Requirements November 2015
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3
2. High level requirements . . . . . . . . . . . . . . . . . . . 3
2.1. Requirements for an API . . . . . . . . . . . . . . . . . 3
2.2. Requirements for supporting operating systems . . . . . . 5
2.2.1. Source address selection . . . . . . . . . . . . . . 5
2.2.2. Route isolation . . . . . . . . . . . . . . . . . . . 6
2.2.3. Automatic PvD metadata marking . . . . . . . . . . . 6
2.2.4. Additional system and library support . . . . . . . . 7
3. Conceptual PvDs . . . . . . . . . . . . . . . . . . . . . . . 7
3.1. The 'default' PvD . . . . . . . . . . . . . . . . . . . . 7
3.2. The 'unspecified' PvD . . . . . . . . . . . . . . . . . . 8
3.3. The 'null' PvD . . . . . . . . . . . . . . . . . . . . . 8
3.4. The 'loopback' PvD . . . . . . . . . . . . . . . . . . . 8
4. Requirements for new API functionality . . . . . . . . . . . 9
4.1. Learning PvD availability . . . . . . . . . . . . . . . . 9
4.2. Learning network configuration information comprising a
PvD . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.3. Scoping functionality to a specific PvD . . . . . . . . . 10
4.4. Explicit versus Implicit PvDs . . . . . . . . . . . . . . 10
4.5. Policy restrictions . . . . . . . . . . . . . . . . . . . 11
4.6. Programmatic reference implementation considerations . . 11
5. Existing networking APIs . . . . . . . . . . . . . . . . . . 12
5.1. Updating existing APIs . . . . . . . . . . . . . . . . . 12
5.2. Requirements for name resolution APIs . . . . . . . . . . 12
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
8. Security Considerations . . . . . . . . . . . . . . . . . . . 13
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 13
9.1. Normative References . . . . . . . . . . . . . . . . . . 13
9.2. Informative References . . . . . . . . . . . . . . . . . 14
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 14
1. Introduction
RFC 7556 [RFC7556] provides the essential conceptual guidance an API
designer would need to support use of PvDs. This document aims to
capture the requirements for an API that can be used by applications
that would be considered "advanced", according to section 6.3 [4] of
RFC 7556 [RFC7556]. The "basic" [5] and "intermediate" [6] API
support levels can in principle be implemented by means of layers
wrapping the advanced API.
Kline Expires May 04, 2016 [Page 2]
Internet-Draft MPvD API Requirements November 2015
This document also attempts to make some of the API implementation
requirements more concrete by discussion and example.
1.1. 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].
2. High level requirements
As described in section 2 [7] of RFC 7556 [RFC7556], a Provisioning
Domain ("PvD") is fundamentally a "consistent set of network
configuration information." This includes information like:
o the list of participating interfaces
o IPv4 and IPv6 addresses
o IPv4 and IPv6 routes: both default routes and more specifics (such
as may be learned via RFC 4191 [RFC4191] Route Information Options
("RIOs"))
o DNS nameservers, search path, et cetera
o HTTP proxy configuration
and undoubtedly many more configuration elements yet to be specified
(like metering hints, transmission medium and speed, captive portal
URL, et cetera).
This configuration information as a whole may not be able to be
learned atomically, may need to be synthesized from multiple sources
including administrative provisioning, and cannot be presumed to be
unchanging over the lifetime of a node's association with a given
PvD.
In order for an application to make consistent use [8] of a given
PvD's network configuration several requirements are placed upon the
API itself and the host operating system providing the API.
2.1. Requirements for an API
At the highest level, the requirements for an API that enables
applications to make sophisticated use of multiple PvDs amount to
providing mechanisms by which they can:
R1 observe accessible PvDs
Kline Expires May 04, 2016 [Page 3]
Internet-Draft MPvD API Requirements November 2015
It MUST be possible for an application to be informed of the set
of all PvDs it can currently access, and to be informed of
changes to this set.
R2 observe configuration elements of an accessible PvD
It MUST be possible to learn requested configuration information
of any accessible PvD, and to be informed of any changes to the
configuration information comprising an accessible PvD.
R3 scope networking functionality to a specified PvD
For every existing API function that interacts with the node's
networking stack, be it at a relatively high level like
getaddrinfo() [9] or at the level of something like Sockets API's
sendmsg(), there MUST be a means by which an application can
specify the PvD within which networking operations are to be
restricted.
R4 use one and only specified scope per networking functionality
invocation
For every unique invocation of a networking API function, there
MUST only be one specified PvD to which networking functionality
is to be restricted. At any given point in an application's
lifetime there MAY be several encapsulating layers of unspecified
PvDs (Section 3.2) through which the implementation must
progressively search to find a specified PvD, but ultimately a
networking function MUST use one and only one PvD for its
operations, even if that PvD is a "null PvD" (Section 3.3).
R5 make consistent use of programmatic references to PvDs
For uniformity and simplicity, every PvD-aware API functional
element SHOULD use (as return values of function calls, function
arguments, et cetera) the same programmatic reference for PvDs,
e.g. a construct containing a PvD identifier [10] or some
equivalent shorthand reference token (see Section 4.6 for a
discussion of implementation considerations). Regardless of the
implementation strategy chosen, a given programmatic reference
MUST remain constant over the lifetime of the node's continuous
attachment to the PvD to which it refers (until a disconnection
or disassociation event occurs). Additionally, references MAY
change with successive re-associations to the same PvD whereas
PvD identifiers, by definition, will not.
It is important to note that there is always a provisioning domain
within which networking functionality is scoped. For simply-
Kline Expires May 04, 2016 [Page 4]
Internet-Draft MPvD API Requirements November 2015
connected hosts this may be the implicit PvD [11] created by a single
networking interface connected to a traditional, shared LAN segment.
For multihomed hosts the "default provisioning domain" is likely a
matter of policy, but MAY be a "null" PvD, i.e. one completely devoid
of networking configuration information (no addresses, no routes, et
cetera). See Section 3 for further discussion.
The utility of such an API (allowing applications to learn of and
control the scope of networking functionality) suggests that the
Provisioning Domain is perhaps a more useful operational definition
for the original IPv6 concept of a "site-local scope" than the ill-
fated [RFC3879], "ill-defined concept" [12] of a site. It also
suggests one possible way by which operating system support for a
PvD-aware API might be implemented.
2.2. Requirements for supporting operating systems
The multiple PvD model of host behaviour is perhaps closer to the
Strong End System Model than the Weak End System Model characterized
in RFC 1122 [RFC1122] section 3.3.4.2 [13], but owing to its
recognition of a many-to-many relationship between interfaces and
PvDs should be considered a unique model unto itself.
In the PvD-aware End System Model, the "two key requirement issues
related to multihoming" are restated as:
a. A host MAY silently discard an incoming datagram whose
destination address does not correspond to any PvD associated
with the physical (or virtual) interface through which it is
received.
b. A host MUST restrict itself to sending (non-source-routed) IP
datagrams only through the physical (or virtual) interfaces that
correspond to the PvD associated with the IP source address of
the datagrams.
In order to support a PvD-aware application's use of multiple PVDs,
several additional requirements must be met by the host operating
system, especially when performing functions on behalf of
applications or when no direct application intervention is possible,
as discussed in the following sections.
2.2.1. Source address selection
Kline Expires May 04, 2016 [Page 5]
Internet-Draft MPvD API Requirements November 2015
Whenever a source address is to be selected on behalf of an
application it is essential for consistent use that only source
addresses belonging to the specified PvD be used a candidate set.
(See RFC 6418 [RFC6418] section 3.5 [14] for references to issues
arising from poor source address selection.)
For nodes following the PvD-aware End System Model, RFC 6724
[RFC6724] section 4 [15] is amended as follows:
R6 The candidate source addresses MUST be restricted to the set of
unicast addresses associated with the concurrently specified PvD.
Additionally, source address selection policies from PvDs other
than the concurrently specified PvD MUST NOT be applied.
2.2.2. Route isolation
Whenever a routing lookup for a given destination is to be performed,
it is essential that only routes belonging to the currently specified
PvD be consulted. Applications and libraries that use the inherent
routing reachability check (and subsequent source address selection)
performed during something like the Sockets API connect() call on a
UDP socket to learn reachability information cheaply cannot function
correctly otherwise. RFC 6418 [RFC6418] section 4.2 [16] contains
more discussion and references to issues arising from insufficiently
isolated routing information.
For nodes following the PvD-aware End System Model:
R7 The set of routes consulted for any routing decision MUST be
restricted to the routes associated with the concurrently
specified PvD.
2.2.3. Automatic PvD metadata marking
In many cases, an application can examine a source address or the
destination address of a received datagram and use that address's
association with a given PvD to learn, for example, the PvD with
which an incoming connection may be associated. It may, however, be
impossible for an application to make this determination on its own
if, for example, an incoming TCP connection is destined to a RFC 1918
[RFC1918] address that happens to be configured in multiple PvDs at
the same time. In such circumstances, the supporting operating
system will need to provide additional assistance.
For nodes following the PvD-aware End System Model:
Kline Expires May 04, 2016 [Page 6]
Internet-Draft MPvD API Requirements November 2015
R8 When performing networking functionality on behalf of an
application, the supporting operating system MUST record and make
available to the application either (1) all the information the
application might need to make a determination of the applicable
PvD on its own or (2) the API's PvD programmatic reference
directly.
A supporting operating system SHOULD record and make available
the API's PvD programmatic reference; other approaches invite
ambiguity among applications' interpretation of available
information.
2.2.4. Additional system and library support
Frequently, operating systems have several additional supporting
libraries and services for more advance networking functionality.
Using the system's own PvD API, and fulfilling the above
requirements, it should be possible to extend these services to
provide correct per-PvD isolation of information and enable
consistent application use of PvDs.
3. Conceptual PvDs
3.1. The 'default' PvD
Because there is always one specified provisioning domain to which an
individual invocation of networking functionality is restricted
(Section 2.1) there must necessarily exist a system "default PvD".
This provisioning domain is the one which networking functionality
MUST use when no other specified PvD can be determined.
Using the system's default PvD enables support of basic [17] uses of
the PvD API (i.e. backward compatibility for unmodified
applications).
The operating system MAY change the default PvD accordingly to
policy. It is expected that nodes will use a variety of information,
coupled with administrative policy, to promote one of any number of
concurrently available PvDs to be the system's default PvD.
R9 A PvD-aware API implementation MUST include a mechanism for
applications to learn the programmatic reference to the system's
concurrent default PvD.
R10 A PvD-aware API implementation SHOULD contain a mechanism
enabling an application to be notified of changes to the
concurrent default PvD in a comparatively efficient manner (i.e.
more efficient than polling).
Kline Expires May 04, 2016 [Page 7]
Internet-Draft MPvD API Requirements November 2015
3.2. The 'unspecified' PvD
An application may at some times wish to be specific about which PvD
should be used for networking operations and at other times may
prefer to defer the choice of specific PvD to one specified elsewhere
(including the system default PvD).
For example, if an application has specified the PvD to be used for
all functions called by its process and child processes
(Section 4.3), it may indicate that certain invocations should
instead use the system default PvD by using a programmatic reference
to the "unspecified PvD".
R11 API implementors MUST reserve a programmatic reference to
represent an "unspecified PvD": an indication that the
application defers the selection of a specific PvD.
R12 When invoked without a specific PvD, or with a programmatic
reference to the "unspecified PvD", networking functionality MUST
find a specific PvD to be used by examining the successive
encapsulating layers of possible specificity supported by the API
(Section 4.3), e.g. look first for a "fiber-specific default"
PvD, then a "thread-specific default" PvD, a "process-specific
default" PvD, and ultimately use the system's default PvD if no
other specified PvD can be found.
3.3. The 'null' PvD
If there are no PvDs accessible to an application, whether as a
matter of policy (insufficient privileges) (Section 4.5) or as a
matter of natural circumstance (the node is not connected to any
network), the construct of a 'null' PvD may be useful to ensure
networking functions fail (and fail quickly).
R13 API implementors MAY reserve a programmatic reference to
represent a "null PvD": an unchanging provisioning domain devoid
of any and all networking configuration information.
It is possible for operating systems to enforce that only PvD-aware
applications may function normally by administratively configuring
the default PvD to be the "null PvD".
3.4. The 'loopback' PvD
TBD: is it useful to have a "loopback" PvD, i.e. one consisting
solely of all addresses configured on the node and all locally
delivered routes?
Kline Expires May 04, 2016 [Page 8]
Internet-Draft MPvD API Requirements November 2015
4. Requirements for new API functionality
4.1. Learning PvD availability
R14 A PvD-aware API MUST implement a mechanism whereby an application
can receive a set of the API's PvD programmatic references
representing the complete set of PvDs (both explicit [18] and
implicit [19]) with which the node is currently associated.
R15 A PvD-aware API implementation SHOULD contain a mechanism
enabling an application to be notified of changes in the above
set of actively associated PvDs in a comparatively efficient
manner (i.e. more efficient than polling).
In may also be of use to applications to receive notifications of
pending changes to the set of currently connected PvDs. For example,
if it is known that a connection to a PvD is scheduled to be
terminated shortly, an application may be able to take some
appropriate action (migrate connections to another PvD, send
notifications, et cetera).
4.2. Learning network configuration information comprising a PvD
R16 A PvD-aware API MUST include a mechanism whereby by an
application, using the API's PvD programmatic reference, can
receive elements of the network configuration information that
comprise a PvD. At a minimum, this mechanism MUST be capable of
answering queries for:
* the PvD identifier
* all participating interfaces
* all IPv4 and all non-deprecated IPv6 addresses
* all configured DNS nameservers
A PvD's network configuration information is neither guaranteed to be
learned atomically nor is it guaranteed to be static. Addresses,
routes, and even DNS nameservers and participating interfaces may
each change over the lifetime of the node's association to a given
PvD. Timely notification of such changes may be of particular
importance to some applications.
Kline Expires May 04, 2016 [Page 9]
Internet-Draft MPvD API Requirements November 2015
R17 A PvD-aware API implementation SHOULD contain a mechanism
enabling an application to be notified of changes in the
networking configuration information comprising a PvD in a
comparatively efficient manner (i.e. more efficient than
polling).
R18 A network configuration query API implementation SHOULD take
extensibility into account, to support querying for configuration
information not yet conceived of with minimal adverse impact to
applications.
4.3. Scoping functionality to a specific PvD
R19 A PvD-aware API implementation MUST include a mechanism for an
application to specify the programmatic reference of the PvD to
which all networking functionality MUST be restricted when not
otherwise explicitly specified (a configurable, application-
specific "default PvD").
R20 The API implementation MUST support setting such a "default PvD"
for an application's entire process (and by extension its child
processes). Additionally, the API SHOULD support an application
setting a "default PvD" at every granularity of "programming
parallelization", i.e. not only per-process, but also per-thread,
per-fiber, et cetera. At every supported layer of granularity,
if no PvD reference has been set the next coarser layer's setting
MUST be consulted (up to and including the system's default PvD)
when identifying the specified PvD to be used.
R21 For every degree of granularity at which an application may
specify a "default PvD" there MUST exist a corresponding
mechanism to retrieve any concurrently specified implementation-
specific PvD programmatic reference. If no PvD has been
specified for at the granularity of a given query, the
"unspecified PvD" must be returned.
With access to this functionality it is possible to start non-PvD-
aware applications within a single PvD context with no adverse
impact. Furthermore, with judicious use of a sufficiently granular
API, existing general purpose networking APIs can be wrapped to
appear PvD-aware.
4.4. Explicit versus Implicit PvDs
Kline Expires May 04, 2016 [Page 10]
Internet-Draft MPvD API Requirements November 2015
R22 Because programmatic references to PvDs are returned for both
explicit and implicit PvDs, the MPvD API implementation MUST be
equally applicable and useful for any valid type of PvD; it MUST
NOT be necessary for a PvD-aware application to distinguish
between explicit and implicit PvDs to function properly.
4.5. Policy restrictions
This document does not make recommendations about policies governing
the use of any or all elements of a PvD API, save only to note that
some restrictions on use may be deemed necessary or appropriate.
R23 A PvD API implementation MAY implement policy controls whereby
access to PvD availability information, configuration elements,
and/or explicit scoping requests is variously permitted or denied
to certain applications.
4.6. Programmatic reference implementation considerations
PvD identifiers may be of a length or form not easily handled
directly in some programming environments, and unauthenticated PvD
identifiers are assumed to be only probabilistically unique [20]. As
such, API implementations should consider using some alternative
programmatic reference (a node-specific "handle" or "token"), which
is fully under the control of the operating system, to identify an
instance of a single provisioning domain's network configuration
information.
Even though a PvD identifier may uniquely correspond to, say, a
network operator, there is no guarantee that the configuration
information (delegated prefixes, configured IP addresses, and so on)
will be the same with every successive association to the same PvD
identifier. An implementation may elect to change the value of the
programmatic reference to a given PvD identifier for each temporally
distinct association. Doing so presents some advantages worth
considering:
Collisions in the PvD identifier space will inherently be treated
as distinct by applications not concerned solely with identifiers.
Changing the value of a reference can disabuse application writers
of inappropriately caching configuration information from one
association instance to another.
Whether two PvDs are "identical" is perhaps better left to
applications to decide since "PvD equivalence" for a given
application may alternatively be determined by successfully
accessing some restricted resource.
Kline Expires May 04, 2016 [Page 11]
Internet-Draft MPvD API Requirements November 2015
This document makes no specific requirement on the type of
programmatic reference used by the API.
5. Existing networking APIs
5.1. Updating existing APIs
From the perspective of a PvD-aware operating system, all previously
existing non-PvD-enabled networking functionality had historically
been executed within the context of a single, implicit provisioning
domain. A sufficiently granular API to specify which PvD is to be
used to scope subsequent networking functionality (Section 4.3) can
be used to wrap non-PvD-aware APIs, giving them this new PvD-aware
capability. However,
R24 Operating system implementors SHOULD consider updating existing
networking APIs to take or return programmatic references to PvDs
directly.
This may mean creating new functions with an additional PvD
programmatic reference argument, adding a PvD programmatic reference
field to an existing structure or class that is itself an argument or
return type, or finding other means by which to use a programmatic
reference with minimal or no disruption to existing applications or
libraries.
5.2. Requirements for name resolution APIs
RFC 3493 [RFC3493] getaddrinfo() [21] and getnameinfo() [22] APIs
deserve explicit discussion. Previously stated requirements make it
clear that it MUST be possible for an application to perform normal
name resolution constrained to the DNS configuration within a
specified PVD. This MUST be possible using at least the techniques
of Section 4.3.
The following additional requirements are places on PvD-aware
implementations of these functions:
R25 All DNS protocol communications with a PvD's nameservers MUST be
restricted to use only source addresses and routes associated
with the PvD.
Kline Expires May 04, 2016 [Page 12]
Internet-Draft MPvD API Requirements November 2015
R26 If getaddrinfo() is called with the AI_ADDRCONFIG flag specified,
IPv4 addresses shall be returned only if an IPv4 address is
configured within the specified provisioning domain and IPv6
addresses shall be returned only if an IPv6 address is configured
within the specified provision domain. The loopback address is
(still) not considered for this case as valid as a configured
address.
6. Acknowledgements
The core concepts presented in this document were developed during
the Android multinetworking effort by Lorenzo Colitti, Robert
Greenwalt, Paul Jensen, and Sreeram Ramachandran.
Additional thanks to the coffee shops of Tokyo.
7. IANA Considerations
This memo includes no request to IANA.
8. Security Considerations
An important new security impact of a PvD-aware API is that it
becomes much simpler (by design) to write a well-functioning
application to create a bridging data path between two PvDs that
would not otherwise have been so easily connected.
For some operating systems, existing APIs already make this bridging
possible, though some functionality like DNS resolution may have been
difficult to implement. Indeed, the very aim of an MPvD API is to
make implementing a PvD-aware application simple and to make its
functioning more "correct" ("first class" support for such
functionality).
Operating system implementations have several points of potential
policy control including:
o use of certain PvDs MAY be restricted by policy (e.g. only
approved users, groups, or applications might be permitted
access), and/or
o use of more than one PvD (or the MPvD API itself) MAY be similarly
restricted.
9. References
9.1. Normative References
Kline Expires May 04, 2016 [Page 13]
Internet-Draft MPvD API Requirements November 2015
[RFC1122] Braden, R., Ed., "Requirements for Internet Hosts -
Communication Layers", STD 3, RFC 1122, DOI 10.17487/
RFC1122, October 1989,
<http://www.rfc-editor.org/info/rfc1122>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W.
Stevens, "Basic Socket Interface Extensions for IPv6", RFC
3493, DOI 10.17487/RFC3493, February 2003,
<http://www.rfc-editor.org/info/rfc3493>.
[RFC6724] Thaler, D., Ed., Draves, R., Matsumoto, A., and T. Chown,
"Default Address Selection for Internet Protocol Version 6
(IPv6)", RFC 6724, DOI 10.17487/RFC6724, September 2012,
<http://www.rfc-editor.org/info/rfc6724>.
[RFC7556] Anipko, D., Ed., "Multiple Provisioning Domain
Architecture", RFC 7556, DOI 10.17487/RFC7556, June 2015,
<http://www.rfc-editor.org/info/rfc7556>.
9.2. Informative References
[RFC1918] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and
E. Lear, "Address Allocation for Private Internets", BCP
5, RFC 1918, February 1996.
[RFC3879] Huitema, C. and B. Carpenter, "Deprecating Site Local
Addresses", RFC 3879, DOI 10.17487/RFC3879, September
2004, <http://www.rfc-editor.org/info/rfc3879>.
[RFC4191] Draves, R. and D. Thaler, "Default Router Preferences and
More-Specific Routes", RFC 4191, DOI 10.17487/RFC4191,
November 2005, <http://www.rfc-editor.org/info/rfc4191>.
[RFC6418] Blanchet, M. and P. Seite, "Multiple Interfaces and
Provisioning Domains Problem Statement", RFC 6418, DOI
10.17487/RFC6418, November 2011,
<http://www.rfc-editor.org/info/rfc6418>.
Author's Address
Kline Expires May 04, 2016 [Page 14]
Internet-Draft MPvD API Requirements November 2015
Erik Kline
Google Japan KK
6-10-1 Roppongi
Mori Tower, 44th floor
Minato, Tokyo 106-6126
JP
Email: ek@google.com
Kline Expires May 04, 2016 [Page 15]