< draft-barthel-lpwan-oam-schc-00.txt   draft-barthel-lpwan-oam-schc-01.txt >
lpwan Working Group D. Barthel lpwan Working Group D. Barthel
Internet-Draft Orange SA Internet-Draft Orange SA
Intended status: Informational L. Toutain Intended status: Informational L. Toutain
Expires: August 1, 2019 IMT-Atlantique Expires: September 11, 2020 IMT Atlantique
A. Kandasamy A. Kandasamy
Acklio Acklio
D. Dujovne D. Dujovne
Universidad Diego Portales Universidad Diego Portales
JC. Zuniga JC. Zuniga
SIGFOX SIGFOX
January 28, 2019 March 10, 2020
OAM for LPWAN using Static Context Header Compression (SCHC) OAM for LPWAN using Static Context Header Compression (SCHC)
draft-barthel-lpwan-oam-schc-00 draft-barthel-lpwan-oam-schc-01
Abstract Abstract
With IP protocols now generalizing to constrained networks, users With IP protocols now generalizing to constrained networks, users
expect to be able to Operate, Administer and Maintain them with the expect to be able to Operate, Administer and Maintain them with the
familiar tools and protocols they already use on less constrained familiar tools and protocols they already use on less constrained
networks. networks.
OAM uses specific messages sent into the data plane to measure some OAM uses specific messages sent into the data plane to measure some
parameters of a network. Most of the time, no explicit values are parameters of a network. Most of the time, no explicit values are
skipping to change at page 2, line 26 skipping to change at page 2, line 26
traffic. traffic.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 1, 2019. This Internet-Draft will expire on September 11, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Detailed behavior . . . . . . . . . . . . . . . . . . . . . . 4 4. Detailed behavior . . . . . . . . . . . . . . . . . . . . . . 4
4.1. Device is the source of an ICMPv6 error message . . . . . 4 4.1. Device does a ping . . . . . . . . . . . . . . . . . . . 4
4.2. Device is the destination of an ICMPv6 error message . . 5 4.1.1. Rule example . . . . . . . . . . . . . . . . . . . . 6
4.2.1. ICMPv6 error message compression. . . . . . . . . . . 6 4.2. Device is ping'ed . . . . . . . . . . . . . . . . . . . . 6
4.3. Device does a ping . . . . . . . . . . . . . . . . . . . 7 4.2.1. Rule example . . . . . . . . . . . . . . . . . . . . 7
4.4. Device is ping'ed . . . . . . . . . . . . . . . . . . . . 9 4.3. Device is the source of an ICMPv6 error message . . . . . 7
5. Traceroute . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.4. Device is the destination of an ICMPv6 error message . . 8
4.4.1. ICMPv6 error message compression. . . . . . . . . . . 9
5. Traceroute . . . . . . . . . . . . . . . . . . . . . . . . . 10
6. Security considerations . . . . . . . . . . . . . . . . . . . 11 6. Security considerations . . . . . . . . . . . . . . . . . . . 11
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.1. Normative References . . . . . . . . . . . . . . . . . . 11 8.1. Normative References . . . . . . . . . . . . . . . . . . 12
8.2. Informative References . . . . . . . . . . . . . . . . . 12 8.2. Informative References . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction 1. Introduction
The primitive functionalities of OAM [RFC6291] are achieved with the The primitive functionalities of OAM [RFC6291] are achieved with the
ICMPv6 protocol. ICMPv6 protocol.
ICMPv6 [RFC4443] is a companion protocol to IPv6 [RFC8200]. ICMPv6 [RFC4443] is a companion protocol to IPv6 [RFC8200].
[RFC4443] defines a generic message format. This format is used for [RFC4443] defines a generic message format. This format is used for
messages to be sent back to the source of an IPv6 packet to inform it messages to be sent back to the source of an IPv6 packet to inform it
skipping to change at page 4, line 20 skipping to change at page 4, line 20
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
3. Use cases 3. Use cases
In the LPWAN architecture, we can distinguish the following cases: In the LPWAN architecture, we can distinguish the following cases:
o the Device is the originator of an Echo Request message, and
therefore the destination of the Echo Reply message.
o the Device is the destination of an Echo Request message, and
therefore the purported source of an Echo Reply message.
o the Device is the (purported) source of an ICMP error message, o the Device is the (purported) source of an ICMP error message,
mainly in response to an incorrect incoming IPv6 message, or in mainly in response to an incorrect incoming IPv6 message, or in
response to a ping request. In this case, as much as possible, response to a ping request. In this case, as much as possible,
the core SCHC C/D should act as a proxy and originate the ICMP the core SCHC C/D should act as a proxy and originate the ICMP
message, so that the Device and the LPWAN network are protected message, so that the Device and the LPWAN network are protected
from this unwanted traffic. from this unwanted traffic.
o the Device is the destination of the ICMP message, mainly in o the Device is the destination of the ICMP message, mainly in
response to a packet sent by the Device to the network that response to a packet sent by the Device to the network that
generates an error. In this case, we want the ICMP message to generates an error. In this case, we want the ICMP message to
reach the Device, and this document describes in section reach the Device, and this document describes in section
Section 4.2.1 what SCHC compression should be applied. Section 4.4.1 what SCHC compression should be applied.
o the Device is the originator of an Echo Request message, and
therefore the destination of the Echo Reply message.
o the Device is the destination of an Echo Request message, and
therefore the purported source of an Echo Reply message.
These cases are further described in Section 4. These cases are further described in Section 4.
4. Detailed behavior 4. Detailed behavior
4.1. Device is the source of an ICMPv6 error message 4.1. Device does a ping
If a ping request is generated by a Device, then SCHC compression
applies.
The format of an ICMPv6 Echo Request message is described in
Figure 1, with Type=128 and Code=0.
0 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data ...
+-+-+-+-+-
Figure 1: ICMPv6 Echo Request message format
If we assume that one rule will be devoted to compressing Echo
Request messages, then Type and Code are known in the rule to be 128
and 0 and can therefore be elided with the not-sent CDA.
Checksum can be reconstructed with the compute-checksum CDA and
therefore is not transmitted.
[RFC4443] states that Identifier and Sequence Number are meant to
"aid in matching Echo Replies to this Echo Request" and that they
"may be zero". Data is "zero or more bytes of arbitrary data".
We recommend that Identifier be zero, Sequence Number be a counter on
3 bits, and Data be zero bytes (absent). Therefore, Identifier is
elided with the not-sent CDA, Sequence Number is transmitted on 3
bits with the LSB CDA and no Data is transmitted.
The transmission cost of the Echo Request message is therefore the
size of the Rule Id + 3 bits.
When the destination receives the Echo Request message, it will
respond back with a Echo Reply message. This message bears the same
format as the Echo Request message but with Type = 129 (see
Figure 1).
[RFC4443] states that the Identifier, Sequence Number and Data fields
of the Echo Reply message shall contain the same values as the
invoking Echo Request message. Therefore, a rule shall be used
similar to that used for compressing the Echo Request message.
TODO: how about a shared rule for Echo Request and Echo Reply with an
LSB(1) CDA on the Type field? Or exploiting the Up/Down direction
field in the rule?
4.1.1. Rule example
The following rule gives an example of a SCHC compression. The type
can be elided if the direction is taken into account. Identifier is
ignored and generated as 0 at decompression. This implies that only
one single ping can be launched at any given time on a device.
Finally, only the least significant 8 bits of the sequence number are
sent on the LPWAN, allowing a serie of 255 consecutive pings.
+----------------+--+--+--+---------+--------+------------++------+
| Field |FL|FP|DI| Value | Match | Comp Decomp|| Sent |
| | | | | | Opera. | Action ||(bits)|
+----------------+--+--+--+---------+---------------------++------+
|ICMPv6 Type |8 |1 |Up|128 | equal | not-sent || |
|ICMPv6 Type |8 |1 |Dw|129 | equal | not-sent || |
|ICMPv6 Code |8 |1 |Bi|0 | equal | not-sent || |
|ICMPv6 Identif. |16|1 |Bi|0 | ignore | not-sent || |
|ICMPv6 Sequence |16|1 |Bi|0 | MSB(24)| LSB || 8 |
+================+==+==+==+=========+========+============++======+
Figure 2: Example of compression rule for a ping from the device
4.2. Device is ping'ed
If the Device is ping'ed (i.e., is the destination of an Echo Request
message), the default behavior is to avoid propagating the Echo
Request message over the LPWAN.
This is done by proxying the ping request on the core SCHC C/D. This
requires to add an action when the rule is selected. Instead of been
processed by the compressor, the packet description is processed by a
ping proxy. The rule is used for the selection, so CDAs are not
necessary.
The resulting behavior is shown on Figure 3 and described below:
Device NGW core SCHC C/D Internet Host
| | | Echo Request, Code=0 |
| | |<---------------------------|
| | | |
| | |--------------------------->|
| | | Echo Reply, Code=0 |
Figure 3: Examples of ICMPv6 Echo Request/Reply
4.2.1. Rule example
The following rule shows an example of a compression rule for pinging
a device.
+----------------+--+--+--+---------+--------+------------++------+
| Field |FL|FP|DI| Value | Match | Comp Decomp|| Sent |
| | | | | | Opera. | Action ||(bits)|
+----------------+--+--+--+---------+---------------------++------+
|ICMPv6 Type |8 |1 |Dw|128 | equal | not-sent || |
|ICMPv6 Type |8 |1 |Uo|129 | equal | not-sent || |
|ICMPv6 Code |8 |1 |Bi|0 | equal | not-sent || |
|ICMPv6 Identif. |16|1 |Bi|0 | ignore | value-sent || |
|ICMPv6 Sequence |16|1 |Bi|0 | MSB(24)| LSB || 8 |
+================+==+==+==+=========+========+============++======+
Figure 4: Example of compression rule for a ping to a device
In this example, type and code are elided, the identifer has to be
sent, and the sequence number is limited to one byte.
4.3. Device is the source of an ICMPv6 error message
As stated in [RFC4443], a node should generate an ICMPv6 message in As stated in [RFC4443], a node should generate an ICMPv6 message in
response to an IPv6 packet that is malformed or which cannot be response to an IPv6 packet that is malformed or which cannot be
processed due to some incorrect field value. processed due to some incorrect field value.
The general intent of this document is to spare both the Device and The general intent of this document is to spare both the Device and
the LPWAN network this un-necessary traffic. The incorrect packets the LPWAN network this un-necessary traffic. The incorrect packets
should be caught at the core SCHC C/D and the ICMPv6 notification should be caught at the core SCHC C/D and the ICMPv6 notification
should be sent back from there. should be sent back from there.
Device NGW core SCHC C/D Internet Host Device NGW core SCHC C/D Internet Host
| | | Destination Port=XXX | | | | Destination Port=XXX |
| | |<---------------------------| | | |<---------------------------|
| | | | | | | |
| | |--------------------------->| | | |--------------------------->|
| | | ICMPv6 Port Unreachable | | | | ICMPv6 Port Unreachable |
| | | | | | | |
| | | | | | | |
Figure 1: Example of ICMPv6 error message sent back to the Internet Figure 5: Example of ICMPv6 error message sent back to the Internet
Figure 1 shows an example of an IPv6 packet trying to reach a Device. Figure 5 shows an example of an IPv6 packet trying to reach a Device.
Let's assume that the port number used as destination port is not Let's assume that the port number used as destination port is not
"known" (needs better definition) from the core SCHC C/D. Instead of "known" (needs better definition) from the core SCHC C/D. Instead of
sending the packet over the LPWAN and having this packet rejected by sending the packet over the LPWAN and having this packet rejected by
the Device, the core SCHC C/D issues an ICMPv6 error message the Device, the core SCHC C/D issues an ICMPv6 error message
"Destination Unreachable" (Type 1) with Code 1 ("Port Unreachable") "Destination Unreachable" (Type 1) with Code 1 ("Port Unreachable")
on behalf of the Device. on behalf of the Device.
In that case the SCHC C/D acts as a router and MUST have a routable
IPv6 address to generate an ICMPv6 message. when compressing a packet
containing an IPv6 header, no compression rules are found and: * if a
rule contains some extension headers, a parameter problem may be
generated (type 4), * no rules contains the IPv6 prefix, a no route
to destination ICMPv6 message (type 0, code 0) may be generated, * a
prefix is found, but no devIID matches, a address unreachable ICMPv6
message (type 0, code 3) may be generated, * a device IPv6 address is
found, but no port matches, a port unreachable ICMPv6 message (type
0, code 4) may be generated,
TODO: This assumes that all ports that the Device listens to will be TODO: This assumes that all ports that the Device listens to will be
matched by a SCHC rule. Is this the basic assumption of SCHC that matched by a SCHC rule. Is this the basic assumption of SCHC that
all packets that do not match a rule are rejected? If yes, why do all packets that do not match a rule are rejected? If yes, why do
have fragmentation also for uncompressed packets? have fragmentation also for uncompressed packets?
TODO: discuss the various Type/Code that are expected to be generated TODO: discuss the various Type/Code that are expected to be generated
in response to various errors. in response to various errors.
4.2. Device is the destination of an ICMPv6 error message 4.4. Device is the destination of an ICMPv6 error message
In this situation, we assume that a Device has been configured to In this situation, we assume that a Device has been configured to
send information to a server on the Internet. If this server becomes send information to a server on the Internet. If this server becomes
no longer accessible, an ICMPv6 message will be generated back no longer accessible, an ICMPv6 message will be generated back
towards the Device by an intermediate router. This information can towards the Device by an intermediate router. This information can
be useful to the Device, for example for reducing the reporting rate be useful to the Device, for example for reducing the reporting rate
in case of periodic reporting of data. Therefore, we compress the in case of periodic reporting of data. Therefore, we compress the
ICMPv6 message using SCHC and forward it to the Device over the ICMPv6 message using SCHC and forward it to the Device over the
LPWAN. LPWAN.
skipping to change at page 6, line 16 skipping to change at page 9, line 16
| | | | | | | |
| SCHC compressed IPv6 | | | SCHC compressed IPv6 | |
|~~~~~~~~~~~|----------->|----------------------X | |~~~~~~~~~~~|----------->|----------------------X |
| | | <--------------------- | | | | <--------------------- |
|<~~~~~~~~~~|------------| ICMPv6 Host unreachable | |<~~~~~~~~~~|------------| ICMPv6 Host unreachable |
|SCHC compressed ICMPv6 | | |SCHC compressed ICMPv6 | |
| | | | | | | |
| | | | | | | |
Figure 2: Example of ICMPv6 error message sent back to the Device Figure 6: Example of ICMPv6 error message sent back to the Device
Figure 2 illustrates this behavior. The ICMPv6 error message is Figure 6 illustrates this behavior. The ICMPv6 error message is
compressed as described in Section 4.2.1 and forwarded over the LPWAN compressed as described in Section 4.4.1 and forwarded over the LPWAN
to the Device. to the Device.
4.2.1. ICMPv6 error message compression. 4.4.1. ICMPv6 error message compression.
The ICMPv6 error messages defined in [RFC4443] contain the fields The ICMPv6 error messages defined in [RFC4443] contain the fields
shown in Figure 3. shown in Figure 7.
0 1 2 3 0 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum | | Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value | | Value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| As much of invoking packet | | As much of invoking packet |
+ as possible without the ICMPv6 packet + + as possible without the ICMPv6 packet +
| exceeding the minimum IPv6 MTU | | exceeding the minimum IPv6 MTU |
Figure 3: ICMPv6 Error Message format Figure 7: ICMPv6 Error Message format
[RFC4443] states that Type can take the values 1 to 4, and Code can [RFC4443] states that Type can take the values 1 to 4, and Code can
be set to values between 0 and 6. Value is unused for the be set to values between 0 and 6. Value is unused for the
Destination Unreachable and Time Exceeded messages. It contains the Destination Unreachable and Time Exceeded messages. It contains the
MTU for the Packet Too Big message and a pointer to the byte causing MTU for the Packet Too Big message and a pointer to the byte causing
the error for the Parameter Error message. Therefore, Value is never the error for the Parameter Error message. Therefore, Value is never
expected to be greater than 1280 in LPWAN networks. expected to be greater than 1280 in LPWAN networks.
The following generic rule can therefore be used to compress all The following generic rule can therefore be used to compress all
ICMPv6 error messages as defined today. More specific rules can also ICMPv6 error messages as defined today. More specific rules can also
skipping to change at page 7, line 34 skipping to change at page 10, line 34
Rule Id must be sent in the compressed ICMPv6 message to the Device. Rule Id must be sent in the compressed ICMPv6 message to the Device.
TODO: the erroneous IPv6 packet header (not just the Rule Id) should TODO: the erroneous IPv6 packet header (not just the Rule Id) should
be sent back. This includes the Rule Id and the compression residue. be sent back. This includes the Rule Id and the compression residue.
This means the SCHC C/D uses the context backwards (in the reverse This means the SCHC C/D uses the context backwards (in the reverse
direction). How does the Device know it must also use the context direction). How does the Device know it must also use the context
backwards? backwards?
TODO: how does one know that the "payload" of a compressed-header TODO: how does one know that the "payload" of a compressed-header
packet is in fact another compressed header? packet is in fact another compressed header?
4.3. Device does a ping
If a ping request is generated by a Device, then SCHC compression
applies.
The format of an ICMPv6 Echo Request message is described in
Figure 4, with Type=128 and Code=0.
0 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data ...
+-+-+-+-+-
Figure 4: ICMPv6 Echo Request message format
If we assume that one rule will be devoted to compressing Echo
Request messages, then Type and Code are known in the rule to be 128
and 0 and can therefore be elided with the not-sent CDA.
Checksum can be reconstructed with the compute-checksum CDA and
therefore is not transmitted.
[RFC4443] states that Identifier and Sequence Number are meant to
"aid in matching Echo Replies to this Echo Request" and that they
"may be zero". Data is "zero or more bytes of arbitrary data".
We recommend that Identifier be zero, Sequence Number be a counter on
3 bits, and Data be zero bytes (absent). Therefore, Identifier is
elided with the not-sent CDA, Sequence Number is transmitted on 3
bits with the LSB CDA and no Data is transmitted.
The transmission cost of the Echo Request message is therefore the
size of the Rule Id + 3 bits.
When the destination receives the Echo Request message, it will
respond back with a Echo Reply message. This message bears the same
format as the Echo Request message but with Type = 129 (see
Figure 4).
[RFC4443] states that the Identifier, Sequence Number and Data fields
of the Echo Reply message shall contain the same values as the
invoking Echo Request message. Therefore, a rule shall be used
similar to that used for compressing the Echo Request message.
TODO: how about a shared rule for Echo Request and Echo Reply with an
LSB(1) CDA on the Type field? Or exploiting the Up/Down direction
field in the rule?
4.4. Device is ping'ed
If the Device is ping'ed (i.e., is the destination of an Echo Request
message), the default behavior is to avoid propagating the Echo
Request message over the LPWAN.
This is the recommended behavior with the Code 0 (default value) of
the Echo Request message.
The resulting behavior is shown on Figure 5 and described below:
Device NGW core SCHC C/D Internet Host
| | | Echo Request, Code=0 |
| | |<---------------------------|
| | | |
| | |--------------------------->|
| | | Echo Reply, Code=0 |
Figure 5: Examples of ICMPv6 Echo Request/Reply
o Code = 0: The Echo Request message is not propagated on the LPWAN
to the Device. If the SCHC C/D finds a rule in the context with
the IPv6 address of the Device, it responds with an Echo Reply on
behalf of the Device. If no rule is found with that IPv6 address,
the SCHC C/D does not respond.
TODO: again, we are assuming that no compression rule is equivalent
to the device not providing the service.
5. Traceroute 5. Traceroute
The traceroute6 program sends successive probe packets destined to a The traceroute6 program sends successive probe packets destined to a
chosen target but with the Hop Limit value successively incremented chosen target but with the Hop Limit value successively incremented
from the initial value 1. from the initial value 1.
It expects to receive a "Time Exceeded" (Type = 3) "Hop Limit" (Code It expects to receive a "Time Exceeded" (Type = 3) "Hop Limit" (Code
= 0) ICMPv6 error message back from the successive routers along the = 0) ICMPv6 error message back from the successive routers along the
path to the destination. path to the destination.
skipping to change at page 10, line 10 skipping to change at page 11, line 7
datagram or even an ICMPv6 message. The destination port is chosen datagram or even an ICMPv6 message. The destination port is chosen
in the unassigned range in hope that the destination, when eventually in the unassigned range in hope that the destination, when eventually
reached, will respond with a "Destination Unreachable" (Type = 1) reached, will respond with a "Destination Unreachable" (Type = 1)
"Port Unreachable" (Code = 4) ICMPv6 error message. "Port Unreachable" (Code = 4) ICMPv6 error message.
It is not anticipated that a Device will want to traceroute a It is not anticipated that a Device will want to traceroute a
destination on the Internet. destination on the Internet.
By contrast, a host on the Internet may attempt to traceroute an IPv6 By contrast, a host on the Internet may attempt to traceroute an IPv6
address that is assigned to an LPWAN device. This is described in address that is assigned to an LPWAN device. This is described in
Figure 6. Figure 8.
Device NGW core SCHC C/D Internet Device NGW core SCHC C/D Internet
| | | Hop Limit=1, Dest Port=XXX | | | | Hop Limit=1, Dest Port=XXX |
| | |<---------------------------| | | |<---------------------------|
| | | | | | | |
| | |--------------------------->| | | |--------------------------->|
| | | ICMPv6 Hop Limit error | | | | ICMPv6 Hop Limit error |
| | | | | | | |
| | | | | | | |
| | | Hop Limit=2, Dest Port=XXX | | | | Hop Limit=2, Dest Port=XXX |
| | |<---------------------------| | | |<---------------------------|
| | | | | | | |
| | |--------------------------->| | | |--------------------------->|
| | | ICMPv6 Port Unreachable | | | | ICMPv6 Port Unreachable |
Figure 6: Example of traceroute to the LPWAN Device Figure 8: Example of traceroute to the LPWAN Device
When the probe packet first reaches the core SCHC C/D, its remaining When the probe packet first reaches the core SCHC C/D, its remaining
Hop Limit is 1. The core SCHC C/D will respond back with a "Time Hop Limit is 1. The core SCHC C/D will respond back with a "Time
Exceeded" (Type = 3) "Hop Limit" (Code = 0) ICMPv6 error message. Exceeded" (Type = 3) "Hop Limit" (Code = 0) ICMPv6 error message.
Later on, when the probe packet reaches the code SCHC C/D with a Hop Later on, when the probe packet reaches the code SCHC C/D with a Hop
Limit value of 2, the core SCHC C/D will, as explained in Limit value of 2, the core SCHC C/D will, as explained in
Section 4.1, answer back with a "Destination Unreachable" (Type = 1) Section 4.3, answer back with a "Destination Unreachable" (Type = 1)
"Port Unreachable" (Code = 4) ICMPv6 error message. This is what the "Port Unreachable" (Code = 4) ICMPv6 error message. This is what the
traceroute6 command expects. Therefore, the traceroute6 command will traceroute6 command expects. Therefore, the traceroute6 command will
work with LPWAN IPv6 destinations, except for the time displayed for work with LPWAN IPv6 destinations, except for the time displayed for
the destination, which is actually the time to its proxy. the destination, which is actually the time to its proxy.
However, if the probe packet happens to hit a port that matches a However, if the probe packet happens to hit a port that matches a
SCHC rule for that Device, the packet will be compressed with this SCHC rule for that Device, the packet will be compressed with this
rule and sent over the LPWAN, which is unfortunate. Forwarding of rule and sent over the LPWAN, which is unfortunate. Forwarding of
packets to the Device over the LPWAN should only be done from packets to the Device over the LPWAN should only be done from
authenticated/trusted sources anyway. Rate-limitation on top of authenticated/trusted sources anyway. Rate-limitation on top of
skipping to change at page 11, line 19 skipping to change at page 12, line 15
7. IANA Considerations 7. IANA Considerations
TODO TODO
8. References 8. References
8.1. Normative References 8.1. Normative References
[I-D.ietf-lpwan-ipv6-static-context-hc] [I-D.ietf-lpwan-ipv6-static-context-hc]
Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and J. Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and J.
Zuniga, "LPWAN Static Context Header Compression (SCHC) Zuniga, "Static Context Header Compression (SCHC) and
and fragmentation for IPv6 and UDP", draft-ietf-lpwan- fragmentation for LPWAN, application to UDP/IPv6", draft-
ipv6-static-context-hc-18 (work in progress), December ietf-lpwan-ipv6-static-context-hc-24 (work in progress),
2018. December 2019.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, <https://www.rfc- DOI 10.17487/RFC2119, March 1997,
editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet
Control Message Protocol (ICMPv6) for the Internet Control Message Protocol (ICMPv6) for the Internet
Protocol Version 6 (IPv6) Specification", STD 89, Protocol Version 6 (IPv6) Specification", STD 89,
RFC 4443, DOI 10.17487/RFC4443, March 2006, RFC 4443, DOI 10.17487/RFC4443, March 2006,
<https://www.rfc-editor.org/info/rfc4443>. <https://www.rfc-editor.org/info/rfc4443>.
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
DOI 10.17487/RFC4861, September 2007, <https://www.rfc- DOI 10.17487/RFC4861, September 2007,
editor.org/info/rfc4861>. <https://www.rfc-editor.org/info/rfc4861>.
[RFC4884] Bonica, R., Gan, D., Tappan, D., and C. Pignataro, [RFC4884] Bonica, R., Gan, D., Tappan, D., and C. Pignataro,
"Extended ICMP to Support Multi-Part Messages", RFC 4884, "Extended ICMP to Support Multi-Part Messages", RFC 4884,
DOI 10.17487/RFC4884, April 2007, <https://www.rfc- DOI 10.17487/RFC4884, April 2007,
editor.org/info/rfc4884>. <https://www.rfc-editor.org/info/rfc4884>.
[RFC6291] Andersson, L., van Helvoort, H., Bonica, R., Romascanu, [RFC6291] Andersson, L., van Helvoort, H., Bonica, R., Romascanu,
D., and S. Mansfield, "Guidelines for the Use of the "OAM" D., and S. Mansfield, "Guidelines for the Use of the "OAM"
Acronym in the IETF", BCP 161, RFC 6291, Acronym in the IETF", BCP 161, RFC 6291,
DOI 10.17487/RFC6291, June 2011, <https://www.rfc- DOI 10.17487/RFC6291, June 2011,
editor.org/info/rfc6291>. <https://www.rfc-editor.org/info/rfc6291>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", STD 86, RFC 8200, (IPv6) Specification", STD 86, RFC 8200,
DOI 10.17487/RFC8200, July 2017, <https://www.rfc- DOI 10.17487/RFC8200, July 2017,
editor.org/info/rfc8200>. <https://www.rfc-editor.org/info/rfc8200>.
8.2. Informative References 8.2. Informative References
[RFC8376] Farrell, S., Ed., "Low-Power Wide Area Network (LPWAN) [RFC8376] Farrell, S., Ed., "Low-Power Wide Area Network (LPWAN)
Overview", RFC 8376, DOI 10.17487/RFC8376, May 2018, Overview", RFC 8376, DOI 10.17487/RFC8376, May 2018,
<https://www.rfc-editor.org/info/rfc8376>. <https://www.rfc-editor.org/info/rfc8376>.
Authors' Addresses Authors' Addresses
Dominique Barthel Dominique Barthel
Orange SA Orange SA
28 chemin du Vieux Chene 28 chemin du Vieux Chene
BP 98 BP 98
38243 Meylan Cedex 38243 Meylan Cedex
France France
Email: dominique.barthel@orange.com Email: dominique.barthel@orange.com
Laurent Toutain Laurent Toutain
IMT-Atlantique IMT Atlantique
2 rue de la Chataigneraie 2 rue de la Chataigneraie
CS 17607 CS 17607
35576 Cesson-Sevigne Cedex 35576 Cesson-Sevigne Cedex
France France
Email: laurent.toutain@imt-atlantique.fr Email: laurent.toutain@imt-atlantique.fr
Arunprabhu Kandasamy Arunprabhu Kandasamy
Acklio Acklio
1137A avenue des Champs Blancs 1137A avenue des Champs Blancs
 End of changes. 32 change blocks. 
136 lines changed or deleted 186 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/