Internet DRAFT - draft-iijima-netconf-websocket-ps
draft-iijima-netconf-websocket-ps
NETCONF Working Group T. Iijima
Internet-Draft Hitachi, Ltd.
Intended status: Experimental H. Kimura
Expires: September 6, 2012 Y. Atarashi
H. Higuchi
Alaxala Networks Corp.
Mar 05, 2012
NETCONF over WebSocket
draft-iijima-netconf-websocket-ps-02
Abstract
This memo proposes a way of transporting NETCONF over WebSocket
protocol. Web-based applications are increasing with the advancement
of Web technologies and emergence of cloud computing. Management
systems that support browser-based interface are getting common.
It's natural to expect network devices to have browser-based
managemaent interface. Currently, however, few network management
protocols support the transportation over HTTP. Although
NETCONF[RFC6241] was defined to be sent over SOAP/HTTPS[RFC4743], it
can not realize notification mechanism[RFC5277] over SOAP/HTTPS since
HTTP lacks bi-directional capabilty. But now, WebSocket protocol,
the update of HTTP with bi-directional capability, is
available[RFC6455]. This memo describes the way NETCONF is sent over
WebSocket protocol.
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 September 6, 2012.
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the
Iijima, et al. Expires September 6, 2012 [Page 1]
Internet-Draft NETCONF over WebSocket Mar 2012
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
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 4
3. Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4. Concerns about Using HTTP and WebSocket . . . . . . . . . . . 7
5. Handling of NETCONF username . . . . . . . . . . . . . . . . . 8
6. Transporting NETCONF Messages over WebSocket Protocol . . . . 9
6.1. Message Sequence . . . . . . . . . . . . . . . . . . . . . 9
6.2. WebSocket Message from NETCONF Client at WebSocket
Handshake . . . . . . . . . . . . . . . . . . . . . . . . 11
6.3. WebSocket Message from NETCONF Server at WebSocket
Handshake . . . . . . . . . . . . . . . . . . . . . . . . 12
6.4. NETCONF Message at NETCONF Client over WebSocket
Connection . . . . . . . . . . . . . . . . . . . . . . . . 13
6.5. NETCONF Message at NETCONF Server over WebSocket
Connection . . . . . . . . . . . . . . . . . . . . . . . . 14
7. Security Considerations . . . . . . . . . . . . . . . . . . . 16
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 18
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19
10.1. Normative References . . . . . . . . . . . . . . . . . . . 19
10.2. Informative References . . . . . . . . . . . . . . . . . . 19
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21
Iijima, et al. Expires September 6, 2012 [Page 2]
Internet-Draft NETCONF over WebSocket Mar 2012
1. Introduction
Web-based applications are increasing in contrast with install-based
applications due to the advancement of Web technologies and emergence
of cloud computing. Management systems that support browser-based
interface are getting common. It's natural to expect network devices
to have browser-based management interface. Currently, however, few
network management protocols support the transportation over HTTP.
Although NETCONF[RFC6241] was defined to be sent over SOAP/
HTTPS[RFC4743], it can not realize notification mechanism[RFC5277]
over SOAP/HTTPS since HTTP lacks bi-directional capabilty. But now,
WebSocket protocol, the update of HTTP with bi-directional
capability, is available[RFC6455]. This memo describes the way
NETCONF is sent over WebSocket protocol.
This memo does not intend to standardize WebSocket protocol as a
mandatory transport mapping of NETCONF. NETCONF[RFC6241] specifies
that it is mandatory to be sent over SSH. But RFC6241 also specifies
in section 2 that "the NETCONF protocol can be layered on any
transport protocol that provides the required set of functionality."
According to the specification, those required set of functionality
are "Connection-Oriented Operation" and "Authentication, Integrity,
and Confidentiality." WebSocket protocol meets those requirements.
It is 'connection-oriented.' And, as written in the section 10.5 of
the WebSocket protocol specification[RFC6455], 'authentication' is
ensured by mechanisms available to a generic HTTP server, such as
cookies, HTTP Authentication, or TLS. Moreover, as written in the
section 10.6 of the specification, 'integrity and confidentiality'
are ensured by running WebSocket protocol over TLS. For these
reasons, WebSocket protocol has a legitimacy to become one of the
optional transport protocols of NETCONF.
Iijima, et al. Expires September 6, 2012 [Page 3]
Internet-Draft NETCONF over WebSocket Mar 2012
2. Problem Statement
Figure 1 is an architecture of NETCONF extracted from [RFC6241]. As
of now, there's few protocols that provide browser-based interface
for NETCONF. Although SOAP/HTTP/TLS is defined to be one of the
transport protocols for NETCONF, it falls short of realizing
notification mechanis since HTTP lacks bi-directional capability.
Although there are ways to outwardly provide HTTP with bi-directional
capability, they have disadvantages. AJAX and Comet technologies are
providing HTTP with bi-directinal capability by polling or keeping a
long session at the application level. But, they tend to consume
large amount of bandwidth and memories. Thus, they aren't suitable
to be used in network devices due to resource constraints.
Layer Example
+-------------+ +-----------------+ +----------------+
(4) | Content | | Configuration | | Notification |
| | | data | | data |
+-------------+ +-----------------+ +----------------+
| | |
+-------------+ +-----------------+ |
(3) | Operations | | <edit-config> | |
| | | | |
+-------------+ +-----------------+ |
| | |
+-------------+ +-----------------+ +----------------+
(2) | Messages | | <rpc>, | | <notification> |
| | | <rpc-reply> | | |
+-------------+ +-----------------+ +----------------+
| | |
+-------------+ +-----------------------------------------+
(1) | Secure | | SSH, TLS, BEEP/TLS, SOAP/HTTP/TLS, ... |
| Transport | | |
+-------------+ +-----------------------------------------+
Figure 1: NETCONF Protocol Layers
At present, however, WebSocket protocol is available. It is based on
HTTP and has a bi-directional capability. Some implementations are
available already. Jetty[Jetty], Kaazing[Kaazing] and so on are
available as WebSocket servers. And, Chrome[Chrome] and
FireFox[FireFox] are available as browsers that work as WebSocket
clients. In addition, there are WebSocket client implementations.
By using WebSocket protocol as an underlying protocol for NETCONF,
it's possible to realize browser-based NETCONF client with event
Iijima, et al. Expires September 6, 2012 [Page 4]
Internet-Draft NETCONF over WebSocket Mar 2012
notification function.
Iijima, et al. Expires September 6, 2012 [Page 5]
Internet-Draft NETCONF over WebSocket Mar 2012
3. Use Case
There are cases in which network management systems manage network
devices by sending XML messages directly onto HTTP. If NETCONF and
its data models, instead of proprietary XML, are used for this
purpose, it's possible to manage various network devices in a same
manner.
Development of browser-based NETCONF client is easily possible
because JavaScript-based WebSocket API[WebSocket API] is standardized
and supported by current Web browsers. By writing an html file that
uses WebSocket API to send and receive NETCONF messages, the html
file works as a NETCONF client on Web browser. Browser-based network
management systems don't require installation on computers.
Therefore, those management systems can run without much care about
platform on which they run. And, there is a case when people want to
manage network devices from computers which they normally don't use.
In such a case, browser-based management systems are effective since
it doesn't require installlation. People can also manage network
devices even from tablet computers.
Furthermore, there are other APIs, which are also intended to be used
by Web browsers for the purpose of controlling computer and storage
resources. For example, DMTF (Distributed Management Task Force),
has standarded REST-based CIMI(Cloud Infrastructure Management
Interface)[DMTF]. REST-based API can be manipulated by JavaScript
language. And, SNIA (Storage Networking Industry Association) has
defined CDMI (Cloud Data Management Interface)[CDMI]. This can also
be manipulated by JavaScript language. Having an option to control
network devices through JavaScript-based WebSocket API will help
developers to develop a NETCONF client in the same environment as
other management systems that use Web-based APIs.
Iijima, et al. Expires September 6, 2012 [Page 6]
Internet-Draft NETCONF over WebSocket Mar 2012
4. Concerns about Using HTTP and WebSocket
There are some drawbacks inherent in HTTP as mentioned in the section
2.4 of RFC 4743[RFC4743], which describes the way of using HTTP for
transporting NETCONF/SOAP. But, for these drawbacks, the same
section makes suggestions. Those suggestions are effective when
WebSocket is used for transporting NETCONF. That is, intermediate
proxies should not be used since it may close idle connections. And,
the field of 'Cache-Control' and 'Pragma' in HTTP header, which is
sent before WebSocket handshake, should be specified as 'no-cache.'
And, WebSocket has several security concerns in common with HTTP.
But, WebSocket incorporates its own security mechanisms such as
origin header and masking, as stated in the Security Considerations
section of [RFC6455]. In any case, use of TLS is necessary on top of
those mechanisms for ensuring authentication and confidentiality.
Iijima, et al. Expires September 6, 2012 [Page 7]
Internet-Draft NETCONF over WebSocket Mar 2012
5. Handling of NETCONF username
NETCONF[RFC6241] mandates underlying transport protocol to carry
NETCONF username and to provide it to NETCONF server. For this
porpose in the case of transporting NETCONF over WebSocket, this memo
proposes the use of Cookie at the time of WebSocket opening
handshake. How Cookie is used for NETCONF username is described in
more detail in the following chapter.
But, when Cookie is used for this purpose, cares need to be taken.
Web browser has a characteristic to preserve Cookie value even after
it stops working. Thus, if Cookie value isn't deleted explicitly,
Cookie value used for NETCONF username might remain against
operator's will. For this reason, it's recommended that NETCONF
server, which is responsible for deploying an html file of NETCONF
client, incorporates a mechanism in the html file that deletes Cookie
value of NETCONF username after NETCONF username authentication is
complete.
Iijima, et al. Expires September 6, 2012 [Page 8]
Internet-Draft NETCONF over WebSocket Mar 2012
6. Transporting NETCONF Messages over WebSocket Protocol
This section specifies the way of transporting NETCONF messages
between an NETCONF client and an NETCONF server when WebSocket
protocol is used for underlying protocol for NETCONF.
6.1. Message Sequence
Overall message sequence is depicted in Figure 2. This sequence is
depicting the case in which NETCONF client runs on a Web-browser.
But it must be noted that there is also a case in which NETCONF
client runs as an install-based application.
+---------------------------+ +-------------------------+
| Network Management System | | Network Device |
| | | (192.168.1.1) |
| +---------++-----------+ | |+-----------++---------+ |
| | NETCONF || WebSocket | | || WebSocket || NETCONF | |
| | Client || (HTTP) | | || (HTTP) || Server | |
| | || Client | | || Server || | |
| +---------++-----------+ | |+-----------++---------+ |
+------|-----------|--------+ +------|-----------|------+
|Load *.html| | |
|---------->| GET(HTTP) | |
| |----------------->| |
| | 200 OK(HTTP) | |
| |<-----------------| |
|<----------| | |
....
|1. Set NETCONF username | |
| on Cookie value | |
|2. Call WebSocket() API | |
|---------->| | |
| |Connection: Upgrade |
| |Set-Cookie: NETCONF_username="***"
| / |----------------->| |
| | | |Authentication
| | | |---------->|
| WebSocket | | OK |
| opening | |<----------|
| handshake |Connection: Upgrade |
| | |<-----------------| |
| | | ACK(TCP) | |
| \ |----------------->| |
|Invoke onopen = function() { }| |
|<----------| | |
| | | |
Iijima, et al. Expires September 6, 2012 [Page 9]
Internet-Draft NETCONF over WebSocket Mar 2012
|<hello>(NETCONF) | |
|---------->| | |
| |----------------->| |
| | |---------->|
| | | <hello> |
| | |<----------|
| |<-----------------| |
|<----------| | |
|<create-subscription>(NETCONF)| |
|---------->| | |
| |----------------->| |
| | |---------->|
| | | <ok> |
| | |<----------|
| |<-----------------| |
|<----------| | |
....
| | <notification>(NETCONF)|
| | |<----------|
| |<-----------------| |
|<----------| | |
| | | |
Figure 2: Message Sequence
First of all, a browser loads an html file, which imports the code of
NETCONF client that uses WebSocket API. The loaded html file works
as an NETCONF client and asks an operator to type in NETCONF
username. After obtaining NETCONF username, the NETCONF client sets
the NETCONF username to Cookie value field in HTTP header, and it
initiates WebSocket opening handshake. When NETCONF server receives
a WebSocket connection request, it derives NETCONF username from the
request and authenticates the client. When NETCONF client is
authenticated, NETCONF server notify NETCONF client of the success of
WebSocket handshake. After WebSocket connection is established,
NETCONF client starts sending NETCONF messages over the connection.
At first, NETCONF <hello> messages are exchanged between NETCONF
client and server so that an NETCONF session is established and an
NETCONF session ID is allocated by NETCONF server to the NETCONF
client. After that, NETCONF <rpc> messages are exchanged. After
NETCONF <rpc> message of <create-subscription> request is approved by
the NETCONF server, NETCONF <notification> messages are sent from
NETCONF server.
When WebSocket server shuts down, NETCONF session as well as
WebSocket connection is killed. Since NETCONF notification
Iijima, et al. Expires September 6, 2012 [Page 10]
Internet-Draft NETCONF over WebSocket Mar 2012
subscription is associated with NETCONF session ID as written in
section 3.5 of NETCONF notification mechanism[RFC5277], subscription
status is lost when WebSocket server shuts down. Thus, it is
necessary to redo WebSocket opening handshake, NETCONF session
establishment, and NETCONF notification subscription when WebSocket
server reboots.
TCP port numbers of 80 and 443 can be used for transporting NETCONF
messages over WebSocket and over WebSocket over TLS, respectively.
These port numbers are automatically used if there's no indication of
TCP port numbers at NETCONF client and server. But, any TCP port
numbers other than above numbers can be used if there's indication of
TCP port numbers at NETCONF client and server.
6.2. WebSocket Message from NETCONF Client at WebSocket Handshake
WebSocket opening handshake is necessary for the establishment of an
WebSocket connection. The WebSocket handshake is initiated by the
NETCONF client. Figure 3 is an example of WebSocket message sent
from the NETCONF client at the time of WebSocket handshake.
C: GET /netconf HTTP/1.1
C: Host: 192.168.1.1
C: Upgrade: websocket
C: Connection: Upgrade
C: Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
C: Origin: http://192.168.1.1
C: Sec-WebSocket-Protocol: netconf
C: Sec-WebSocket-Version: 13
C: Cookie: netconf_username=foo
Figure 3: WebSocket Message from NETCONF Client
Most of the fileds in Figure 3 are generated automatically by
WebSocket client. For example, fields of 'Upgrade' and 'Connection'
are specified by WebSocket client as 'websocket' and 'Upgrade'
respectively, so that an HTTP server running in the NETCONF server
understands that it needs to respond as an WebSocket server. The
field that the NETCONF client needs to specify is that of 'Sec-
WebSocket-Protocol,' so-called subprotocol field, and 'Set-Cookie'
field. The NETCONF client has to specify 'Sec-WebSocket-Protocol' as
'netconf,' for example, so that the WebSocket server understands that
it needs to hand over messages sent over this connection to the
NETCONF server. And, the NETCONF client has to specify 'Set-Cookie'
field as 'netconf_username=foo,' for example, so that the NETCONF
server can authenticate NETCONF client.
Iijima, et al. Expires September 6, 2012 [Page 11]
Internet-Draft NETCONF over WebSocket Mar 2012
Aforementioned establishment of the WebSocket connection and
specification of subprotocol is made by using WebSocket API in the
html file of the NETCONF client as depicted in Figure 4.
var wsURL = "ws://" + host;
ws = new WebSocket(wsURL, "netconf");
Figure 4: WebSocket API in NETCONF Clients for Initiating Handshake
And, setting of Cookie is made by using JavaScript API in the html
file of the NETCONF client as depicted in Figure 5. If "foo" is
typed in by operators of the NETCONF client, Cookie NAME of
"netconf_username" and Cookie VALUE of "foo" need to be set.
var userName;
do{
userName = prompt("Please type in operator's name.")
}while(!userName);
$("#username").text(userName);
document.cookie = "netconf_username=" + userName;
Figure 5: JavaScript API in NETCONF Clients for Setting Cookie
6.3. WebSocket Message from NETCONF Server at WebSocket Handshake
Figure 6 is an example of WebSocket message sent from an NETCONF
server to an NETCONF client at the time of WebSocket handshake.
S: HTTP/1.1 101 Switching Protocols
S: Upgrade: websocket
S: Connection: Upgrade
S: Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
S: Sec-WebSocket-Protocol: netconf
Figure 6: WebSocket Message from NETCONF Server
Unlike the WebSocket client, there's no standardized WebSocket API
for WebSocket server. Although the way of implementing WebSocket
server is proprietary, there are some implementations as mentioned in
section 2. Thus, it's possible to develop NETCONF server on top of
those implementations by using their libraries.
Iijima, et al. Expires September 6, 2012 [Page 12]
Internet-Draft NETCONF over WebSocket Mar 2012
Most of the fields in Figure 6 are generated automatically by
WebSocket server. For example, fields of 'Upgrade' and 'Connection'
are specified by WebSocket server as 'websocket' and 'Upgrade'
respectively, in order to let the NETCONF client know that an HTTP
server in network device can run as WebSocket server. The field that
the NETCONF server needs to specify is that of 'Sec-WebSocket-
Protocol.' The NETCONF server has to specify its name of the
subprotocol as 'netconf,' for example, in order to let the NETCONF
client know that the WebSocket server in the network device accepts
NETCONF messages.
6.4. NETCONF Message at NETCONF Client over WebSocket Connection
After an WebSocket connection is established, an NETCONF client and
an NETCONF server start exchanging NETCONF messages. Exchanges of
<hello> messages between NETCONF client and NETCONF server begin, at
first, to establish a NETCONF session. After the NETCONF session is
established and a session ID is allocated to NETCONF client, <rpc>
messages like <edit-config> for NETCONF configurations and <rpc>
messages like <create-subscription> for NETCONF notification should
be sent from the NETCONF client to the NETCONF server. And, messages
like <notification> should be sent from the NETCONF server to the
NETCONF client asynchronously. During this data transfer period,
both NETCONF configuration messages and NETCONF notification messages
are encapsulated as a payload of WebSocket protocol according to the
Data Framing specified in the section 5.2 of WebSocket
protocol[RFC6455]. This encapsulation is made by WebSocket layer.
Sending and receiving of NETCONF messages at NETCONF client is made
by using WebSocket API as depicted in Figure 7.
Iijima, et al. Expires September 6, 2012 [Page 13]
Internet-Draft NETCONF over WebSocket Mar 2012
ws.onopen = function() {
// WebSocket connection has established.
// rpc message of <hello> can be sent here
// by send() method.
ws.send("message to send");
....
};
ws.onmessage = function (evt) {
// NETCONF message has arrived.
// NETCONF message can be parsed by DOM APIs.
var received_msg = evt.data;
var parser = new DOMParser();
var dom = parser.parseFromString(evt.data, "text/xml");
if(dom.documentElement.nodeName == "hello"){
// rpc reply message of <hello> has arrived.
// Subsequent NETCONF message can be sent here
// by send() method.
ws.send("message to send");
...
}
};
Figure 7: WebSocket API in NETCONF Client for Sending Messages
As shown in Figure 7, NETCONF messages are sent from WebSocket API of
"ws.send()." The NETCONF message to be sent through this API might
be a hand-written text message typed into browser-based NMS. Or it
might be created by JavaScript DOM API according to the data typed
into browser-based NMS. Unlike the case of transporting NETCONF over
SOAP/HTTPS, which creates <rpc> parts, in the case of transporting
NETCONF over WebSocket, <rpc> parts as well as contents need to be
created by NETCONF client.
NETCONF messages are also received by WebSocket API of
"ws.onmessage()." These messages are analyzed by JavaScript DOM API
afterwards.
6.5. NETCONF Message at NETCONF Server over WebSocket Connection
The way of sending and receiving NETCONF message at NETCONF server is
proprietary. Unlike the WebSocket client, there's no standardized
WebSocket API for WebSocket server. Although the way of implementing
WebSocket server is proprietary, there are some implementations as
mentioned in section 2. Thus, it's possible to develop NETCONF
server on top of those implementations by using their libraries. By
Iijima, et al. Expires September 6, 2012 [Page 14]
Internet-Draft NETCONF over WebSocket Mar 2012
using send method of those libraries, it's possible to send NETCONF
notification message asynchronously from NETCONF server to NETCONF
clients.
Iijima, et al. Expires September 6, 2012 [Page 15]
Internet-Draft NETCONF over WebSocket Mar 2012
7. Security Considerations
The security considerations of NETCONF protocol[RFC6241], NETCONF
Notification mechanism[RFC5277], and WebSocket protocol[RFC6455] are
applicable to this document. Implementers or users should take these
considerations into account.
It is necessary to use TLS (Transport Layer Security) in order to
ensure Transport-level security, such as authentication of users and
encryption of data transfer. That is, security has to be provided in
the form of NETCONF over WebSocket over TLS (WSS).
Iijima, et al. Expires September 6, 2012 [Page 16]
Internet-Draft NETCONF over WebSocket Mar 2012
8. IANA Considerations
As written in section 11.5 of WebSokcet protocol[RFC6455], NETCONF's
Subprotocol Common Name, to be exchanged in 'Sec-WebSocket-Protocol'
field at WebSocket opening handshake, coupled with Identifier and
Definition are necessary to be registered with the WebSocket
Subprotocol Name Registry.
Iijima, et al. Expires September 6, 2012 [Page 17]
Internet-Draft NETCONF over WebSocket Mar 2012
9. Acknowledgements
This document was written using the xml2rfc tool described in RFC
2629 [RFC2629].
Iijima, et al. Expires September 6, 2012 [Page 18]
Internet-Draft NETCONF over WebSocket Mar 2012
10. References
10.1. Normative References
[RFC4743] Goddard, T., "Using NETCONF over the Simple Object
Access Protocol (SOAP)", RFC 4743, December 2006.
[RFC5277] Chisholm, S. and H. Trevino, "NETCONF Event
Notifications", RFC 5277, July 2008.
[RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A.
Bierman, "Network Configuration Protocol (NETCONF)",
RFC 6241, June 2011.
[RFC6455] Fette, I. and A. Melnikov, "The WebSocket Protocol",
RFC 6455, December 2011.
[WebSocket API]
"The WebSocket API".
<http://dev.w3.org/html5/websockets/>
10.2. Informative References
[CDMI] "SNIA's CDMI".
<http://cdmi.sniacloud.com/>
[Chrome] "Chrome".
<http://www.google.com/chrome/?hl=en>
[DMTF] "CLOUD | DMTF".
<http://www.dmtf.org/standards/cloud>
[FireFox] "FireFox".
<http://www.mozilla.org/>
[Jetty] "Jetty WebServer".
<http://jetty.codehaus.org/jetty/>
[Kaazing] "Kaazing".
<http://kaazing.com/>
Iijima, et al. Expires September 6, 2012 [Page 19]
Internet-Draft NETCONF over WebSocket Mar 2012
[RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
June 1999.
Iijima, et al. Expires September 6, 2012 [Page 20]
Internet-Draft NETCONF over WebSocket Mar 2012
Authors' Addresses
Tomoyuki Iijima
Hitachi, Ltd.
292 Yoshida-cho, Totsuka-ku
Yokohama, Kanagawa 244-0817
Japan
Phone: +81-45-860-2156
Email: tomoyuki.iijima.fg@hitachi.com
Hiroyasu Kimura
Alaxala Networks Corp.
Shin-Kawasaki Mitsui Bldg.
890 Saiwai-ku Kashimada
Kawasaki, Kanagawa 212-0058
Japan
Phone: +81-44-549-1735
Fax: +81-44-549-1272
Email: h-kimura@alaxala.com
Yoshifumi Atarashi
Alaxala Networks Corp.
Shin-Kawasaki Mitsui Bldg.
890 Saiwai-ku Kashimada
Kawasaki, Kanagawa 212-0058
Japan
Phone: +81-44-549-1735
Fax: +81-44-549-1272
Email: atarashi@alaxala.net
Hidemitsu Higuchi
Alaxala Networks Corp.
Shin-Kawasaki Mitsui Bldg.
890 Saiwai-ku Kashimada
Kawasaki, Kanagawa 212-0058
Japan
Phone: +81-44-549-1735
Fax: +81-44-549-1272
Email: hidemitsu.higuchi@alaxala.com
Iijima, et al. Expires September 6, 2012 [Page 21]