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: April 20, 2013 Y. Atarashi
H. Higuchi
Alaxala Networks Corp.
Oct 17, 2012
NETCONF over WebSocket
draft-iijima-netconf-websocket-ps-04
Abstract
This memo proposes a way of transporting NETCONF over WebSocket
protocol. Web-related technologies are advancing and number of Web-
based systems are increasing. Management systems that adopt Web-
related technologies or that have browser-based management interface
are getting common. It is natural to expect that there is a standard
network operation and management protocol to be used over HTTP.
Currently, however, there are few efforts in this area. Although
NETCONF[RFC6241] once defined itself to be sent over SOAP/
HTTPS[RFC4743], supposedly due to unfamiliarity to SOAP or lack of
bi-directional capability, such efforts aren't successful
enough[I-D.ietf-netconf-rfc4743-rfc4744-to-historic]. But now,
WebSocket protocol, the update of HTTP equipped with bi-directional
capability, is available[RFC6455]. This memo describes how NETCONF
should be treated 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 April 20, 2013.
Copyright Notice
Iijima, et al. Expires April 20, 2013 [Page 1]
Internet-Draft NETCONF over WebSocket Oct 2012
Copyright (c) 2012 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
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 at Handshake from NETCONF Client . . . . 11
6.3. WebSocket Message at Handshake from NETCONF Server . . . . 12
6.4. NETCONF Message over WebSocket at NETCONF Client . . . . . 12
6.5. NETCONF Message over WebSocket at NETCONF Server . . . . . 14
7. Security Considerations . . . . . . . . . . . . . . . . . . . 15
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 17
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18
10.1. Normative References . . . . . . . . . . . . . . . . . . . 18
10.2. Informative References . . . . . . . . . . . . . . . . . . 18
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20
Iijima, et al. Expires April 20, 2013 [Page 2]
Internet-Draft NETCONF over WebSocket Oct 2012
1. Introduction
Web-related technologies are advancing and number of Web-based
systems are increasing. Management systems that adopt Web-related
technologies or have browser-based management interface are getting
common. It is natural to expect that there is a standard network
operation and management protocol to be sent over HTTP. Currently,
however, there are few efforts in this area and, in most cases,
management interface to be used over HTTP are proprietary. Although
NETCONF[RFC6241] once defined itself to be sent over SOAP/
HTTPS[RFC4743], supposedly due to unfamiliarity to SOAP or lack of
bi-directional capability, such efforts didn't succeed well
enough[I-D.ietf-netconf-rfc4743-rfc4744-to-historic]. But now,
WebSocket protocol, the update of HTTP equipped with bi-directional
capability, is available[RFC6455]. This memo describes how NETCONF
should be exchanged over WebSocket protocol.
This memo does not intend to make WebSocket as a mandatory transport
protocol for NETCONF. NETCONF specifies that it is mandatory to be
sent over SSH[RFC6241]. But [RFC6241] also specifies in its 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
[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 [RFC6455], 'integrity and
confidentiality' are ensured by running WebSocket protocol over TLS.
For these reasons, WebSocket protocol coupled with TLS meets the
requirements of transport protocol for NETCONF.
Iijima, et al. Expires April 20, 2013 [Page 3]
Internet-Draft NETCONF over WebSocket Oct 2012
2. Problem Statement
Web-related technologies, such as JavaScript and JSON(JavaScript
Orient Notation), are widely used. And number of Web-based systems,
such as those provided for IaaS (Infrastructure as a Service), are
increasing. There are systems that are providing management
interface in a form of REST API(Application Programming Interface).
It is natural to expect that there is a standard network operation
and management protocol to be sent over HTTP. Currently, however,
there are few efforts in this area. And, in most of the cases,
management interface are proprietary.
NETCONF[RFC6241] once defined itself to be sent over SOAP/
HTTPS[RFC4743], as drawn in Figure 1. But, supposedly due to
unfamiliarity to SOAP or lack of bi-directional capability, such
efforts haven't been successful
enough[I-D.ietf-netconf-rfc4743-rfc4744-to-historic].
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
As of now, however, WebSocket protocol is available[RFC6455]. It is
based on HTTP, which is familiar to all. And, it has a bi-
directional capability. Thus, by using WebSocket protocol, it's
possible to realize NETCONF that is used over HTTP with ease and that
supports notification mechanism specified in [RFC5277].
Iijima, et al. Expires April 20, 2013 [Page 4]
Internet-Draft NETCONF over WebSocket Oct 2012
Some WebSocket implementations already exist today. As examples of
WebSocket server implementation, Jetty[Jetty], Kaazing[Kaazing], and
the like are available. And, as examples of WebSocket client
implementation, Jetty[Jetty] is available. Moreover, as examples of
Web-browsers that can work as WebSocket client, Chrome[Chrome], and
FireFox[FireFox] and the like are available.
WebSocket server and client implementations mentioned above are
providing libraries. And WebSocket protocol itself also defines
API[WebSocket API] to be used on Web-browsers. Thus, by using those
libraries and APIs, developers can develop NETCONF server, install-
based NETCONF client, and browser-based NETCONF client with ease that
use WebSocket for transporting NETCONF.
Iijima, et al. Expires April 20, 2013 [Page 5]
Internet-Draft NETCONF over WebSocket Oct 2012
3. Use Case
XML, which NETCONF uses for message encoding, has high compatibility
with HTTP in that XML are easily manipulated on Web-browsers by
JavaScript DOM (Document Object Model) API. Hence, there are cases
in which XML is used over HTTP to manage network devices. But as far
as those XML are proprietary, the way of managing network devices and
items to manage are different from network device to network device.
If NETCONF, instead of proprietary XML, and its data models are used
for above cases, it will provide a way of managing various network
devices in a same manner.
Browser-based network management systems don't require installation
on computers. For this reason, some operators prefer browser-based
network management systems. This trend might accelerate in the age
of tablet computers. In this respect, it is rational for NETCONF to
have an option to be used through browser-based network management
system. Operators will be able to manage network devices from any
computers without installation.
Iijima, et al. Expires April 20, 2013 [Page 6]
Internet-Draft NETCONF over WebSocket Oct 2012
4. Concerns about Using HTTP and WebSocket
There are some drawbacks inherent in HTTP as mentioned in the section
2.4 of [RFC4743], which describes the way of transporting NETCONF
over SOAP/HTTPS. 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 fields of
'Cache-Control' and 'Pragma' in HTTP header, which is sent before or
during WebSocket opening handshake, SHOULD be specified as 'no-
cache.'
WebSocket has had several security concerns. But it incorporated its
own security mechanisms such as origin header and masking, as stated
in the Security Considerations section of [RFC6455]. In any case,
using TLS is necessary for ensuring authentication and
confidentiality, when WebSocket is used for transporting NETCONF.
Iijima, et al. Expires April 20, 2013 [Page 7]
Internet-Draft NETCONF over WebSocket Oct 2012
5. Handling of NETCONF Username
NETCONF[RFC6241] mandates underlying transport protocol to carry
NETCONF username and to provide it to NETCONF server. In the case of
transporting NETCONF over WebSocket, this memo proposes that NETCONF
username SHOULD be carried and provided in compliance with NETCONF
over TLS[I-D.badra-netconf-rfc5539bis].
In the case of transporting NETCONF over WebSocket, TLS is necessary
for the user authentication. In order to ensure that NETCONF access
control is done consistently with TLS authentication, NETCONF
username SHOULD be matched with TLS authentication data. At present,
[I-D.badra-netconf-rfc5539bis] is proposing ways of extracting
NETCONF username from TLS authentication data. Being compliant with
these approaches is the most efficient. At least, it is confirmed
that NETCONF server using WebSocket/TLS for underlying protocol can
see TLS Certificate at the time of TLS handshake and can extract
NETCONF username from the Certificate.
Iijima, et al. Expires April 20, 2013 [Page 8]
Internet-Draft NETCONF over WebSocket Oct 2012
6. Transporting NETCONF Messages over WebSocket Protocol
This section specifies how NETCONF messages are exchanged between
NETCONF client and server over WebSocket protocol.
6.1. Message Sequence
Simplified overall message sequence is depicted in Figure 2. This
sequence is depicting the case in which NETCONF client runs on a Web-
browser. However, it must be noted that there is also a case in
which NETCONF client runs as an install-based software developed with
WebSocket client library.
+---------------------------+ +---------------------------+
| Network Management System | | Network Device |
| | | (e.g. 192.168.1.1) |
| +---------++-----------+ | | +-----------++---------+ |
| | NETCONF || WebSocket | | | | WebSocket || NETCONF | |
| | Client || (HTTP) | | | | (HTTP) || Server | |
| | || Client | | | | Server || | |
| +---------++-----------+ | | +-----------++---------+ |
+------|-----------|--------+ +--------|-----------|------+
| | | |
|Load *.html| | |
|---------->| Hello(TLS) | |
| / |------------------->| |
| | | Server Certificate | |
| TLS |<-------------------| |
| handshake | Client Certificate | |
| | |------------------->|NETCONF username
| | | Finished(TLS) |---------->|
| \ |<-------------------| |
| | | |
| | GET(HTTP) | |
| |------------------->| |
| | 200 OK(HTTP) | |
| |<-------------------| |
|<----------| | |
....
|Call WebSocket() API | |
|---------->| | |
| |Connection: Upgrade | |
| / |------------------->| |
| WebSocket |Connection: Upgrade | |
| opening |<-------------------| |
| handshake | ACK(TCP) | |
| \ |------------------->| |
Iijima, et al. Expires April 20, 2013 [Page 9]
Internet-Draft NETCONF over WebSocket Oct 2012
|Invoke onopen = function() { } | |
|<----------| | |
| | | |
|<hello>(NETCONF) | |
|---------->| | |
| |------------------->| |
| | |---------->|
| | | <hello> |
| | |<----------|
| |<-------------------| |
|<----------| | |
....
|<create-subscription>(NETCONF) | |
|---------->| | |
| |------------------->| |
| | |---------->|
| | | <ok> |
| | |<----------|
| |<-------------------| |
|<----------| | |
....
| | <notification>(NETCONF)|
| | |<----------|
| |<-------------------| |
|<----------| | |
| | | |
Figure 2: Message Sequence
First of all, a browser starts loading of an html file, which imports
the code of NETCONF client, over TLS. This invokes TLS handshake.
At the time of TLS handshake, NETCONF server can extract NETCONF
username from Certificate according to the algorithm described in
[I-D.badra-netconf-rfc5539bis]. After TLS handshake is complete, the
html file is loaded onto the browser.
The loaded html file works as NETCONF client and it initiates
WebSocket opening handshake. When NETCONF server receives a
WebSocket connection request, it notifies the client of whether
WebSocket handshake has succeeded. After WebSocket connection is
established, NETCONF client starts sending NETCONF messages over the
connection.
NETCONF <hello> messages are exchanged between NETCONF client and
server, at first, so that a NETCONF session is established and a
NETCONF session ID is allocated by NETCONF server to the NETCONF
client. Then, NETCONF <rpc> messages are exchanged. After NETCONF
Iijima, et al. Expires April 20, 2013 [Page 10]
Internet-Draft NETCONF over WebSocket Oct 2012
<rpc> message of <create-subscription> request is approved by the
NETCONF server, NETCONF <notification> messages are sent from NETCONF
server asynchronously.
When WebSocket server shuts down, NETCONF session as well as
WebSocket connection is killed. Since NETCONF notification
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 after WebSocket
server reboots.
Without any indications, TCP port numbers of 443 is automatically
used for transporting NETCONF messages over WebSocket over TLS. When
port number other than 443 needs to be used, the number SHOULD be
specified at both NETCONF client and server respectively.
6.2. WebSocket Message at Handshake from NETCONF Client
WebSocket opening handshake is necessary for the establishment of an
WebSocket connection, which is used for NETCONF message exchange.
The WebSocket handshake is initiated by a 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
Figure 3: WebSocket Message from NETCONF Client
Most of the fileds in Figure 3 are generated automatically by
WebSocket client. The only field that the NETCONF client needs to
specify is 'Sec-WebSocket-Protocol' field, so-called subprotocol
field. The NETCONF client has to specify the field as 'netconf,' for
example, so that the NETCONF server understands that messages sent
over this connection is directed towards NETCONF server.
Aforementioned establishment of the WebSocket connection and
specification of subprotocol is made by using WebSocket API in the
Iijima, et al. Expires April 20, 2013 [Page 11]
Internet-Draft NETCONF over WebSocket Oct 2012
html file of the NETCONF client as depicted in Figure 4.
var wssURL = "wss://" + location.host;
var wss = new WebSocket(wssURL, "netconf");
Figure 4: WebSocket API in NETCONF Clients for Initiating Handshake
6.3. WebSocket Message at Handshake from NETCONF Server
Figure 5 is an example of WebSocket message sent from the NETCONF
server to the 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 5: WebSocket Message from NETCONF Server
Most of the fields in Figure 5 are generated automatically by
WebSocket server, too. The only field that the NETCONF server needs
to specify is 'Sec-WebSocket-Protocol' field. The NETCONF server has
to specify the field as 'netconf,' for example, in order to let the
NETCONF client know that the WebSocket server in the network device
accepts NETCONF messages.
Unlike the WebSocket client, there's no standardized WebSocket API
for WebSocket server. But, there are some WebSocket server
implementations as mentioned in section 2. Thus, it's possible to
develop a part of WebSocket opening handshake at NETCONF server with
ease by using libraries provided by those implementations.
6.4. NETCONF Message over WebSocket at NETCONF Client
NETCONF message exchange between NETCONF client and server starts
after an WebSocket connection is established. <hello> messages are
exchanged, first, for the establishment of a NETCONF session and
allocation of NETCONF session ID. Then, <rpc> messages like <edit-
config> are sent from NETCONF client to NETCONF server for NETCONF
configurations. And <rpc> messages like <create-subscription> are
sent from NETCONF client to NETCONF server for subscription of
NETCONF notification. Moreover, messages like <notification> are
sent asynchronously from NETCONF server to NETCONF client for NETCONF
Iijima, et al. Expires April 20, 2013 [Page 12]
Internet-Draft NETCONF over WebSocket Oct 2012
notification. 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. The example is illustrated in Figure 6.
wss.onopen = function() {
// WebSocket connection has been established.
// Thus, NETCONF <hello> can be sent here
// by send() method.
wss.send("message to send");
....
};
wss.onmessage = function (evt) {
// NETCONF message has arrived.
// Thus, NETCONF message can be parsed here by DOM APIs.
var parser = new DOMParser();
var dom = parser.parseFromString(evt.data, "text/xml");
....
if(dom.documentElement.nodeName == "hello"){
// The NETCONF message turned out to be
// NETCONF <hello>.
// Subsequent NETCONF message can be sent here
// by send() method.
wss.send("message to send");
...
}
};
Figure 6: WebSocket API in NETCONF Client for Sending Messages
As shown in Figure 6, NETCONF messages are sent from NETCONF client
by using WebSocket API of "wss.send()." And, NETCONF messages are
received at NETCONF client by using WebSocket API of
"wss.onmessage()."
The contents of NETCONF messages exchanged through above API might be
either a hand-written XML messages typed into network management
system or XML messages created by JavaScript DOM API according to the
data set on the network management system. It must be noted that in
the case of transporting NETCONF over WebSocket, <rpc> parts need to
Iijima, et al. Expires April 20, 2013 [Page 13]
Internet-Draft NETCONF over WebSocket Oct 2012
be created by NETCONF client, unlike the case of transporting NETCONF
over SOAP/HTTPS, in which <rpc> parts are generated in SOAP layer.
6.5. NETCONF Message over WebSocket at NETCONF Server
Unlike the WebSocket client, the way of sending and receiving NETCONF
message at NETCONF server is proprietary since there's no
standardized API for WebSocket server. But, there are some WebSocket
server implementations as mentioned in section 2. Thus, it's
possible to develop NETCONF server with ease by using libraries
provided by those implementations.
Iijima, et al. Expires April 20, 2013 [Page 14]
Internet-Draft NETCONF over WebSocket Oct 2012
7. Security Considerations
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, NETCONF has to be sent in the
form of NETCONF over WebSocket over TLS (WSS).
In addition, 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.
Iijima, et al. Expires April 20, 2013 [Page 15]
Internet-Draft NETCONF over WebSocket Oct 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 need to be registered with the WebSocket Subprotocol Name
Registry.
Iijima, et al. Expires April 20, 2013 [Page 16]
Internet-Draft NETCONF over WebSocket Oct 2012
9. Acknowledgements
This document was written using the xml2rfc tool described in
[RFC2629].
Iijima, et al. Expires April 20, 2013 [Page 17]
Internet-Draft NETCONF over WebSocket Oct 2012
10. References
10.1. Normative References
[I-D.badra-netconf-rfc5539bis]
Badra, M., "NETCONF Over Transport Layer Security (TLS)",
draft-badra-netconf-rfc5539bis-02 (work in progress),
April 2012.
[I-D.ietf-netconf-rfc4743-rfc4744-to-historic]
Wijnen, B., "RFC4743 and RFC4744 to Historic status",
draft-ietf-netconf-rfc4743-rfc4744-to-historic-00 (work in
progress), September 2012.
[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
[Chrome] "Chrome".
<http://www.google.com/chrome/?hl=en>
[FireFox] "FireFox".
<http://www.mozilla.org/>
[Jetty] "Jetty WebServer".
<http://jetty.codehaus.org/jetty/>
[Kaazing] "Kaazing".
Iijima, et al. Expires April 20, 2013 [Page 18]
Internet-Draft NETCONF over WebSocket Oct 2012
<http://kaazing.com/>
[RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
June 1999.
Iijima, et al. Expires April 20, 2013 [Page 19]
Internet-Draft NETCONF over WebSocket Oct 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.net
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 April 20, 2013 [Page 20]