Internet DRAFT - draft-daniel-6lowpan-sslp
draft-daniel-6lowpan-sslp
Network Working Group K. Kim, Ed.
Internet-Draft Waleed A. Baig
Intended status: Standards Track S. Yoo
Expires: April 29, 2010 Ajou University
S. Daniel Park
SAMSUNG Electronics
H. Mukhtar
ETRI
October 26, 2009
Simple Service Location Protocol (SSLP) for 6LoWPAN
draft-daniel-6lowpan-sslp-02.txt
Status of This Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. This document may contain material
from IETF Documents or IETF Contributions published or made publicly
available before November 10, 2008. The person(s) controlling the
copyright in some of this material may not have granted the IETF
Trust the right to allow modifications of such material outside the
IETF Standards Process. Without obtaining an adequate license from
the person(s) controlling the copyright in such materials, this
document may not be modified outside the IETF Standards Process, and
derivative works of it may not be created outside the IETF Standards
Process, except to format it for publication as an RFC or to
translate it into languages other than English.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
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."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on April 29, 2010.
Copyright Notice
Kim, et al. Expires April 29, 2010 [Page 1]
Internet-Draft SSLP for 6LoWPAN October 2009
Copyright (c) 2009 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 in effect on the date of
publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document.
Abstract
The Simple Service Location Protocol (SSLP) provides a framework for
the discovery and selection of the services working on 6LoWPAN. The
protocol has a simple structure that is easy to be implemented on
6LoWPAN devices that are characterized by short range, low bit rate
and low power. The protocol also offers a mechanism for
interoperability with the IP networks under SLP. It enables
communication between 6LoWPAN and other IP networks.
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].
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Notation Conventions . . . . . . . . . . . . . . . . . . . 4
3. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 4
4. Required Simple Service Location Protocol(SSLP) Messages . . . 6
4.1. Service Request Message . . . . . . . . . . . . . . . . . 7
4.2. Service Reply Message . . . . . . . . . . . . . . . . . . 7
4.3. Service Acknowledgment Message . . . . . . . . . . . . . . 9
4.4. Directory Agent Advertisement Message . . . . . . . . . . 9
4.5. Service Agent Advertisement Message . . . . . . . . . . . 10
5. Optional Simple Service Location Protocol(SSLP) Messages . . . 10
5.1. Service Type Request . . . . . . . . . . . . . . . . . . . 10
5.2. Service Type Reply . . . . . . . . . . . . . . . . . . . . 11
5.3. Service Deregistration Message . . . . . . . . . . . . . . 11
6. Interoperability . . . . . . . . . . . . . . . . . . . . . . . 12
7. Security Considerations . . . . . . . . . . . . . . . . . . . 12
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13
10.1. Normative References . . . . . . . . . . . . . . . . . . . 13
10.2. Informative References . . . . . . . . . . . . . . . . . . 13
Kim, et al. Expires April 29, 2010 [Page 2]
Internet-Draft SSLP for 6LoWPAN October 2009
1. Introduction
6LoWPAN stands for IPv6 layer over low-power wireless personal area
networks (LoWPAN) which consist of devices that conform to the IEEE
802.15.4-2003 standard [ieee802.15.4]. IEEE 802.15.4 devices are
used to provide services like home security, fire alarm, medical
sensing/monitoring, heating control, and building automation, etc.
When clients want to use services without configuration, a service
discovery mechanism is needed.
In IP networks, the Service Location Protocol(SLP) is used for access
to information about the existence, location, and configuration of
networked services [RFC2608]. SLP is well operating in IP networks,
but there are several issues to be solved [I-D.kushalnagar-lowpan-
goals-assumptions] to apply it to 6LoWPAN. The limited packet size
of 6LoWPANs is one of them; Given that in the worst case the maximum
size available for transmitting IP packets over IEEE 802.15.4 frame
is 81 octets, and that the IPv6 header is 40 octets long, (without
optional headers), this leaves only 41 octets for upper-layer
protocols, like UDP and TCP. UDP uses 8 octets in the header,
thereby leaving 33 octets for data, like SLP, over UDP. However, the
SLP message could easily be greater than this remaining octets, and
it should be transmitted as multiple packets, causing traffic
overheads to 6LoWPAN.
[RFC4944] introduces the adaption layer of fragmentation and
reassembly for IPv6 packets, while providing a header compression
scheme for reducing the size of the IPv6 header. Also, it expects
that 6LoWPAN uses mesh routing for the multi-hop forwarding of IPv6
packets at sub-IP layer. This makes it difficult to use SLP
directly, requiring to define a simple service discovery protcol to
discover, control, and maintain services provided by devices in
6LoWPAN.
This document defines the Simple Service Location Protocol(SSLP)
which provides a framework for the discovery and selection of network
services in 6LoWPAN. SSLP is simple and lightweight to be
transmitted efficiently in 6LoWPAN. SSLP uses the Tokenized XML
strings to minimize the packet excange. SSLP in 6LoWPAN could also
interwork with SLPv2[RFC2608] in external IP networks. That is,
clients can discover and control services in 6LoWPAN regardless of
whether they are located inside the 6LoWPAN or not.
2. Terminology
Terminologies used in this document are defined in [RFC2608] as
follows:
Kim, et al. Expires April 29, 2010 [Page 3]
Internet-Draft SSLP for 6LoWPAN October 2009
User Agent (UA): A process working on the user's behalf to
establish contact with some service. The UA retrieves service
information from the Service Agents or Directory Agents.
Service Agent (SA): A process working on the behalf of one or more
services to advertise the services.
Directory Agent (DA): A process which collects service
advertisements.
Service Type: Each type of service has a unique Service Type
string.
Naming Authority: The agency or group which catalogs given Service
Types and Attributes. The default Naming Authority is IANA.
Scope: A set of services, typically making up a logical
administrative group.
Translation Agent(TA): is newly defined in this document for
interworking with SLPv2 in IP networks. TA is a process working
on a device which has interfaces to both IP networks and 6LoWPAN.
It translates SLPv2 messages into SSLP messages, and vice versa.
2.1. Notation Conventions
Syntax: Syntax for string based protocols follow the conventions
defined for ABNF [RFC2234].
Strings: All strings are encoded using the UTF-8 [RFC3629]
transformation of the Unicode character set and are NOT null
terminated when transmitted. Strings are preceded by a two byte
length field.
string-list: A comma delimited list of strings with the following
syntax: string-list = string / string ',' string-list
In format diagrams, any field ending with a \ indicates a variable
length field, given by a prior length field in the protocol.
3. Protocol Overview
The Simple Service Location Protocol (SSLP) supports the same
framework as SLP in which client applications are modeled as 'User
Agents' (UAs), and services are advertised by 'Service Agents' (SAs).
The 'Directory Agent' (DA) functions as a cache of the information
about services registered by SAs and informs UAs of the existence of
services. Besides, SSLP introduces 'Translation Agents' which
Kim, et al. Expires April 29, 2010 [Page 4]
Internet-Draft SSLP for 6LoWPAN October 2009
perform the translation of messages (which are defined in Section 4)
for the interoperability with SLPv2.
The role of UA, SA, and DA in SSLP is not quite different from the
ones in SLP. The UA issues a 'Service Request' (SREQ) on behalf of
the client application, specifying the characteristics of the service
which the client requires. The UA will receive a 'Service Reply'
(SREP) specifying the location of all services in the 6LoWPAN which
satisfy the request.
SSLP allows both the two-party and three-party service discovery
mechanisms. In the two-party discovery, the UA directly issues SREQ
to SAs. This mechanism is useful for a small-sized 6LoWPAN because
it doesn't require the configuration of DAs. In this case, the UA
broadcasts (or multicasts if possible) a SREQ to the entire 6LoWPAN
to which it belongs using the link layer broadcasting scheme.
In the three-party discovery, one or more DAs are employed in order
to reduce the broadcasting overheads of service requests especially
for a large 6LoWPAN. SAs send a 'Service Registration' (SREG)
containing all the services they advertise to DAs and receive
'Service Acknowledgement' (SACK) in reply. DA caches mapping of
Service to XML Token. SACK includes the corresponding Token that DA
has assign to the SREG service. These advertisements must be
refreshed with the DA or they expire. UAs unicast SREQ to DAs
instead of SAs if any DAs are known. UAs and SAs MAY discover DAs in
two ways. One, they broadcast a (SREQ) message for the DA service
when they start up. Two, the DA sends unsilicited DA advetisment
message periodially, which is listened by UAs and SAs. In both the
cases the UAs and SAs receive DA Advertisement (DADV) message. DADV
message contains the XML token corresponding to SREQ service message.
Services are grouped together using 'scopes'. These are strings
which identify services by location, administrative grouping,
proximity in a network topology or some other category.
+--------+-SSLP message- > +-----------+-SLPv2 message- > +--------+
|UA,SA,DA| |Translation| |UA,SA,DA|
|of SSLP | | Agent | |of SLPv2|
+--------+ < -SSLP message-+-----------+ < -SLPv2 message-+--------+
Figure 1: The operation of Translation Agent(TA)
The 'Translation Agent' (TA) must work on a machine which reaches
both a IP network and a 6LoWPAN. If a TA receives either a SLP
message from a IP network or a SSLP message from a 6LoWPAN, it maps
the SSLP messages to SLP messages and vice versa. TA gets Service
Request Messages from DA of SSLP and forwards to corresponding SLP
messages . This operation is essentially needed for SSLP to be
Kim, et al. Expires April 29, 2010 [Page 5]
Internet-Draft SSLP for 6LoWPAN October 2009
interoperable with SLP and vice versa. With the TA, a UA can
discover and control services in 6LoWPAN regardless of whether they
are located inside the 6LoWPAN or not. Further work on TA TBD.
4. Required Simple Service Location Protocol(SSLP) Messages
The minimum required implementation of SSLP consists of a UA, SA or
both. The use of DA in itself is optional but in case a DA is
deployed it MUST support all the SSLP messages.
SAs and UAs MUST support SREQ, SREP, and DADV. SAs MUST also support
SREG, SACK, and SADV. For UAs and SAs, to support the other messages
is OPTIONAL.
All SSLP messages begin with the following header:
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver | Msg-ID |O|F| rsv | Sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: SSLP general header format
Ver field describes the version of SSLP being used.
Msg-ID is the number representing a message type as shown below:
Message Type Abbreviation Msg-ID
Service Request SREQ 1
Service Reply SREP 2
Service Registration SREG 3
Service Acknowledge SACK 4
DA Advertisement DADV 5
SA Advertisement SADV 6
Service Type Request STREQ 7
Service Type Reply STREP 8
Service Deregistration SDER 9
Two more message types and there detail needs TBD
O and F bit are compatible with the flag field in SLPv2 and defined
in [RFC2608]. OVERFLOW is set when a message's length exceeds what
can fit into a datagram. FRESH is set on every new SREG.
The sequence number is set to a unique value for each unique SREQ
message. If the request message is retransmitted, the same sequence
number is used. Replies set the sequence number to the same value as
Kim, et al. Expires April 29, 2010 [Page 6]
Internet-Draft SSLP for 6LoWPAN October 2009
the sequence number in the SREQ message. This field is compatible
with XID field in SLPv2.
4.1. Service Request Message
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Simple Service Location header (Msg-ID = SREQ = 1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AM| Source Address (16/64/128 bit) \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| length of <service-type> | <service-type> String \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| length of <scope-list> | <scope-list> String \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: SSLP service request message header format
Addressing Mode (AM) field has three different values as follows:
Value Meaning
01 16 bit short address is used as Source Address field
10 64 bit extended address is used as Source Address field
11 128 bit IPv6 address is used as Source Address field
If< scope-list >field is omitted, length of< scope-list >field MUST
be set to zero and all services matching < service-type > are
discovered independent of < scope-list >.
The < service-type > field consists of service type strings. Service
Types SHOULD be defined by a "Service Template" [RFC2609], which
provides expected attributes, values and protocol behavior.
In the presence of one or more DAs, UAs unicast SREQ messages to
them. DAs MUST issue SREP messages in response to SREQ messages
whether they know the service location UAs inquire or not.
4.2. Service Reply Message
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Simple Service Location header (Msg-ID = SREP = 2) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error Code | Service Location Entry count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| < Service Location Entry 1 > ... < Service Location Entry N > \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: SSLP service reply message header format
Kim, et al. Expires April 29, 2010 [Page 7]
Internet-Draft SSLP for 6LoWPAN October 2009
A nonzero value in Error Code field indicates an error. In case of a
nonzero value of Error Code, the rest of the message MAY be ignored.
Moreover, errors are only returned against unicast requests.
Error Code field has different values as follows:
Value Meaning
1 PARSING_ERROR: The message does not obey the SSLP syntax.
2 SCOPE_ERROR: The scope field in SSLP message did not
match to the scope supported by DA or SA.
3 INTERNAL_ERROR: The DA or SA is not working properly
4 MSG_NOT_SUPPORTED: The DA or SA gets an optional message
not being supported
5 ILLEGAL_REGISTRATION: The SREG has problems
6 DA_BUSY: UA or SA should retry
SREP message contains zero or more service location entries. If no
matching service locations are present in SAs or DAs, the SREP
message with zero service location entries is returned in response to
a unicast SREQ message. However, a SREP message with zero service
location entries MUST NOT be sent in response to a broadcast SREQ
message.
The service location entry is defined as follows:
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Lifetime |LT | Service Location \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: Service location entry format
A service location entry may not be cached longer than the Lifetime
seconds mentioned in the Lifetime field of Service location entry.
Location Type (LT) field has three different values as follows:
Value Meaning
01 16 bit short address is used as Service Location field
10 64 bit extended address is used as Service Location field
11 URL Location field is used as Service Location field
If LT field has the value of 11, Service Location field is replaced
by the URL Location field defined as follows.
Kim, et al. Expires April 29, 2010 [Page 8]
Internet-Draft SSLP for 6LoWPAN October 2009
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| length of URL | URL (variable length) \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: URL location field format
4.3. Service Acknowledgment Message
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Simple Service Location header (Msg-ID = SACK = 4) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error Code |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: SSLP service acknowledgement message header format
Service Acknowledgement Messages (SACK) messages are received in
response to the SREG messages. The values of Error Code are same as
defined in section 4.2.
4.4. Directory Agent Advertisement Message
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Simple Service Location header (Msg-ID = DADV = 5) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error Code | Service Location Entry \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| length of <scope-list> | <scope-list> String \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 8: SSLP directory agent advertisement header format
A DADV message is sent in two cases. First, when a DA receives a
SREQ message with service type of "service: directory-agent".
Second, to send an unsolicited advertising message by the DA.
The Error Code is set to zero when the DA broadcsts an unsolicited
advetisement message. If the DADV is unicast (in response to SREQ
message with "service:directory agent") the DA returns the same
errors a SREP would.
The< scope-list >includes the scope provided by the DA. The< scope-
list >of DA MUST not be NULL.
DAs MUST send unsolicited periodically. SAs MUST listen for DADVs.
Kim, et al. Expires April 29, 2010 [Page 9]
Internet-Draft SSLP for 6LoWPAN October 2009
UAs MAY do this. In case UAs do not listen to the DADVs, they must
discover the DAs by sending SREQ message with service type of
"service: directory-agent".
4.5. Service Agent Advertisement Message
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Simple Service Location header (Msg-ID = SADV = 6) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Service Location Entry count |< Service Location Entry 1...N>\
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| length of <scope-list> | <scope-list> String \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 9: SSLP service agent advertisement header format
A SADV message is sent when a SA receives a SREQ message with service
type of "service: service-agent" or when SAs send unsolicited
advertisment messages in the absence of DAs. SAs MUST not generate
Service Agent Advertisement (SADV) messages if they have been
configured to use specific DA(s).
The Service Location Entry Count is set to 1 while responding to a
SERQ with service type of "service: directory-agent". The Service
Location Entry is filled as "service:directory-agent://< adr of SA >.
In case of unsolited DADV, all the services provided by the SA are
listed in the Service Location Entry preceded by the Service Location
Entry count.
5. Optional Simple Service Location Protocol(SSLP) Messages
5.1. Service Type Request
The service type request (STREQ) allows a UA to find all the service
types available on the network.
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Simple Service Location header (Msg-ID = STREQ = 7) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AM| Source Address (16/64/128 bit) \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| length of <scope-list> | <scope-list> String \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 10: SSLP service type message header format
Kim, et al. Expires April 29, 2010 [Page 10]
Internet-Draft SSLP for 6LoWPAN October 2009
In the presence of one or more DAs, UAs unicast STREQ messages to
them. DAs MUST issue Service Type Reply (STREP) messages in response
to STREQ messages.
In the absence of DAs, STREQ messages are broadcasted over 6LoWPAN
and SAs respond with STREP messages.
5.2. Service Type Reply
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Simple Service Location header (Msg-ID = STREP = 8) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error Code | Service Location Entry \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| length of <stype-list> | <stype-list> String \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 11: SSLP service type reply header format
The Service Location Entry is included in STREQ to reduce the
communication overhead when there is no DA. Without Service Location
Entry the UA ahs to maks two broadcasts. First, it shall broadcast
STREQ to find all the service types in the network. Second, UA shall
broadcast SREQ to discover the SAs which can provide a specific
service type. However, in the presence of Service Location Entry a
unicast SREQ can be made after knowing all the service types.
The service type list < stype-list > is a < string-list > field which
contains the list of available service types with an SA or a DA.
5.3. Service Deregistration Message
The DA deletes a service registration when the Lifetime for the
service expires. In case an SA terminates the service provisioning
before its Lifetime is expired, it SHOULD deregister with the DA. SA
MUST derigister the services with the same scope list which was used
for service registration.
Kim, et al. Expires April 29, 2010 [Page 11]
Internet-Draft SSLP for 6LoWPAN October 2009
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Simple Service Location header (Msg-ID = SDER = 9) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Service Location Entry \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| length of <service-type> | <service-type> String \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| length of <scope-list> | <scope-list> String \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 12: SSLP service deregisteration message header format
SDER messages are sent to DAs when SAs do not provide their services
any more. These messages help eliminating any stale entries in the
DAs.
6. Interoperability
SSLP interoperates with SLPv2 via Translation Agent (TA). A TA MUST
be capable of the translation between SLPv2 and SSLP. In other
words, TA translates SLPv2 messages into SSLP messages, and vice
versa. SSLP Service Request will be tranformed to SLP Service
Request message. TA receives Service Reply from SLP and then
transforms that message to SSLP Service Reply Message.
7. Security Considerations
The security considerations of the [RFC3111] are applicable to this
document. Especially, Translation Agent (TA) MUST be secured for
processing SSLP/SLP messages translation and specific considerations
will be carefully studied in the next versions.
8. IANA Considerations
TBD.
9. Acknowledgements
Thanks to Shafique Ahmad Chaudhry, Byung-hee Roh, Sun-ho Kim, Mi-jung
Lee, and Minho Lee for their useful discussions and supports for
writing this document.
10. References
Kim, et al. Expires April 29, 2010 [Page 12]
Internet-Draft SSLP for 6LoWPAN October 2009
10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher,
"IPv6 over Low-Power Wireless Personal Area Networks
(6LoWPANs): Overview, Assumptions, Problem Statement,
and Goals", RFC 4919, August 2007.
[RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D.
Culler, "Transmission of IPv6 Packets over IEEE
802.15.4 Networks", RFC 4944, September 2007.
[RFC2165] Veizades, J., Guttman, E., Perkins, C., and S.
Kaplan, "Service Location Protocol", RFC 2165,
June 1997.
[RFC2608] Guttman, E., Perkins, C., Veizades, J., and M. Day,
"Service Location Protocol, Version 2", RFC 2608,
June 1999.
[RFC2609] Guttman, E., Perkins, C., and J. Kempf, "Service
Templates and Service: Schemes", RFC 2609, June 1999.
[RFC3111] Guttman, E., "Service Location Protocol Modifications
for IPv6", RFC 3111, May 2001.
[IEEE802.15.4] 802.15.4-2003, IEEE Standard., "Wireless medium
access control and physical layer specifications for
low-rate wireless personal area networks.", May 2003.
10.2. Informative References
[RFC2234] Crocker, D., Ed. and P. Overell, "Augmented BNF for
Syntax Specifications: ABNF", RFC 2234,
November 1997.
[RFC2396] Berners-Lee, T., Fielding, R., and L. Masinter,
"Uniform Resource Identifiers (URI): Generic Syntax",
RFC 2396, August 1998.
[RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing
an IANA Considerations Section in RFCs", BCP 26,
RFC 2434, October 1998.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
Kim, et al. Expires April 29, 2010 [Page 13]
Internet-Draft SSLP for 6LoWPAN October 2009
Authors' Addresses
Kim, Ki Hyung (editor)
Ajou University
San 5 Wonchun-dong, Yeongtong-gu
Suwon-si, Gyeonggi-do 443-749
KOREA
Phone: +82 31 219 2433
EMail: kkim86@ajou.ac.kr
Waleed Akram Baig
Ajou University
San 5 Wonchun-dong, Yeongtong-gu
Suwon-si, Gyeonggi-do 443-749
KOREA
Phone: +82 31 219 1894
EMail: waleedbaig@ajou.ac.kr
Seung Wha Yoo
Ajou University
San 5 Wonchun-dong, Yeongtong-gu
Suwon-si, Gyeonggi-do 443-749
KOREA
Phone: +82 31 219 1603
EMail: swyoo@ajou.ac.kr
Soohong Daniel Park
SAMSUNG Electronics
Mobile Platform Laboratory, SAMSUNG Electronics 416 Maetan-3dong, Yeongtong-gu
Suwon-si, Gyeonggi-do 442-742
KOREA
Phone: +82 31 200 4508
EMail: soohong.park@samsung.com
Kim, et al. Expires April 29, 2010 [Page 14]
Internet-Draft SSLP for 6LoWPAN October 2009
Hamid Mukhtar
ETRI
USN Research Division, ETRI, 161 Gajeong-dong, Yuseong-gu,
Daejeon 305-350
KOREA
Phone: +82 42 860 5435
EMail: hamid@etri.re.kr
Kim, et al. Expires April 29, 2010 [Page 15]