| < draft-barthel-lpwan-oam-schc-01.txt | draft-barthel-lpwan-oam-schc-02.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: September 11, 2020 IMT Atlantique | Expires: 6 May 2021 IMT Atlantique | |||
| A. Kandasamy | A. Kandasamy | |||
| Acklio | Acklio | |||
| D. Dujovne | D. Dujovne | |||
| Universidad Diego Portales | Universidad Diego Portales | |||
| JC. Zuniga | JC. Zuniga | |||
| SIGFOX | SIGFOX | |||
| March 10, 2020 | 2 November 2020 | |||
| OAM for LPWAN using Static Context Header Compression (SCHC) | OAM for LPWAN using Static Context Header Compression (SCHC) | |||
| draft-barthel-lpwan-oam-schc-01 | draft-barthel-lpwan-oam-schc-02 | |||
| 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 | |||
| sent is these messages. Network parameters are obtained from the | sent is these messages. Network parameters are obtained from the | |||
| analysis of these specific messages. | analysis of these specific messages. | |||
| This can be used: | This can be used: | |||
| o To detect if a host is up or down. | * To detect if a host is up or down. | |||
| o To measure the RTT and its variation over time. | * To measure the RTT and its variation over time. | |||
| o To learn the path used by packets to reach a destination. | * To learn the path used by packets to reach a destination. | |||
| OAM in LPWAN is a little bit trickier since the bandwidth is limited | OAM in LPWAN is a little bit trickier since the bandwidth is limited | |||
| and extra traffic added by OAM can introduce perturbation on regular | and extra traffic added by OAM can introduce perturbation on regular | |||
| transmission. | transmission. | |||
| Two scenarios can be investigated: | Two scenarios can be investigated: | |||
| o OAM coming from internet. In that case, the NGW should act as a | * OAM coming from internet. In that case, the NGW should act as a | |||
| proxy and handle specifically the OAM traffic. | proxy and handle specifically the OAM traffic. | |||
| o OAM coming from LPWAN devices: This can be included into regular | * OAM coming from LPWAN devices: This can be included into regular | |||
| devices but some specific devices may be installed in the LPWAN | devices but some specific devices may be installed in the LPWAN | |||
| network to measure its quality. | network to measure its quality. | |||
| The primitive functionalities of OAM are achieved with the ICMPv6 | The primitive functionalities of OAM are achieved with the ICMPv6 | |||
| protocol. | protocol. | |||
| ICMPv6 defines messages that inform the source of IPv6 packets of | ICMPv6 defines messages that inform the source of IPv6 packets of | |||
| errors during packet delivery. It also defines the Echo Request/ | errors during packet delivery. It also defines the Echo Request/ | |||
| Reply messages that are used for basic network troubleshooting (ping | Reply messages that are used for basic network troubleshooting (ping | |||
| command). ICMPv6 messages are transported on IPv6. | command). ICMPv6 messages are transported on IPv6. | |||
| skipping to change at page 2, line 33 ¶ | skipping to change at page 2, line 33 ¶ | |||
| 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 https://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 September 11, 2020. | This Internet-Draft will expire on 6 May 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 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 (https://trustee.ietf.org/ | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
| publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
| carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
| to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
| include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
| the Trust Legal Provisions and are provided without warranty as | 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 does a ping . . . . . . . . . . . . . . . . . . . 4 | 4.1. Device does a ping . . . . . . . . . . . . . . . . . . . 4 | |||
| 4.1.1. Rule example . . . . . . . . . . . . . . . . . . . . 6 | 4.1.1. Rule example . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.2. Device is ping'ed . . . . . . . . . . . . . . . . . . . . 6 | 4.2. Device is ping'ed . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.2.1. Rule example . . . . . . . . . . . . . . . . . . . . 7 | 4.2.1. Rule example . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.3. Device is the source of an ICMPv6 error message . . . . . 7 | 4.3. Device is the source of an ICMPv6 error message . . . . . 7 | |||
| 4.4. Device is the destination of an ICMPv6 error message . . 8 | 4.4. Device is the destination of an ICMPv6 error message . . 9 | |||
| 4.4.1. ICMPv6 error message compression. . . . . . . . . . . 9 | 4.4.1. ICMPv6 error message compression. . . . . . . . . . . 9 | |||
| 5. Traceroute . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 5. Traceroute . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 6. Security considerations . . . . . . . . . . . . . . . . . . . 11 | 6. Security considerations . . . . . . . . . . . . . . . . . . . 12 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 12 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 12 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 13 | 8.2. Informative References . . . . . . . . . . . . . . . . . 13 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | 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. | |||
| skipping to change at page 4, line 7 ¶ | skipping to change at page 4, line 7 ¶ | |||
| This document focuses on using Static Context Header Compression | This document focuses on using Static Context Header Compression | |||
| (SCHC) to compress [RFC4443] messages that need to be transmitted | (SCHC) to compress [RFC4443] messages that need to be transmitted | |||
| over the LPWAN network, and on having the LPWAN gateway proxying the | over the LPWAN network, and on having the LPWAN gateway proxying the | |||
| Device to save it the unwanted traffic. | Device to save it the unwanted traffic. | |||
| LPWANs' salient characteristics are described in [RFC8376]. | LPWANs' salient characteristics are described in [RFC8376]. | |||
| 2. Terminology | 2. Terminology | |||
| This draft re-uses the Terminology defined in | This draft re-uses the Terminology defined in [RFC8724]. | |||
| [I-D.ietf-lpwan-ipv6-static-context-hc]. | ||||
| 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 | * the Device is the originator of an Echo Request message, and | |||
| therefore the destination of the Echo Reply message. | therefore the destination of the Echo Reply message. | |||
| o the Device is the destination of an Echo Request message, and | * the Device is the destination of an Echo Request message, and | |||
| therefore the purported source of an Echo Reply message. | therefore the purported source of an Echo Reply message. | |||
| o the Device is the (purported) source of an ICMP error message, | * 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 | * 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 4.4.1 | |||
| Section 4.4.1 what SCHC compression should be applied. | what SCHC compression should be applied. | |||
| 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 does a ping | 4.1. Device does a ping | |||
| If a ping request is generated by a Device, then SCHC compression | If a ping request is generated by a Device, then SCHC compression | |||
| applies. | applies. | |||
| skipping to change at page 5, line 15 ¶ | skipping to change at page 5, line 15 ¶ | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Identifier | Sequence Number | | | Identifier | Sequence Number | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Data ... | | Data ... | |||
| +-+-+-+-+- | +-+-+-+-+- | |||
| Figure 1: ICMPv6 Echo Request message format | Figure 1: ICMPv6 Echo Request message format | |||
| If we assume that one rule will be devoted to compressing Echo | 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 | 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. | and 0 and can therefore be elided with the not-sent CDA. | |||
| Checksum can be reconstructed with the compute-checksum CDA and | Checksum can be reconstructed with the compute-checksum CDA and | |||
| therefore is not transmitted. | therefore is not transmitted. | |||
| [RFC4443] states that Identifier and Sequence Number are meant to | [RFC4443] states that Identifier and Sequence Number are meant to | |||
| "aid in matching Echo Replies to this Echo Request" and that they | "aid in matching Echo Replies to this Echo Request" and that they | |||
| skipping to change at page 6, line 14 ¶ | skipping to change at page 6, line 14 ¶ | |||
| 4.1.1. Rule example | 4.1.1. Rule example | |||
| The following rule gives an example of a SCHC compression. The type | The following rule gives an example of a SCHC compression. The type | |||
| can be elided if the direction is taken into account. Identifier is | can be elided if the direction is taken into account. Identifier is | |||
| ignored and generated as 0 at decompression. This implies that only | ignored and generated as 0 at decompression. This implies that only | |||
| one single ping can be launched at any given time on a device. | 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 | Finally, only the least significant 8 bits of the sequence number are | |||
| sent on the LPWAN, allowing a serie of 255 consecutive pings. | sent on the LPWAN, allowing a serie of 255 consecutive pings. | |||
| +----------------+--+--+--+---------+--------+------------++------+ | +============+====+====+====+=======+==========+==========+==+======+ | |||
| | Field |FL|FP|DI| Value | Match | Comp Decomp|| Sent | | |Field | FL | FP | DI | Value | Matching | CDA | | Sent | | |||
| | | | | | | Opera. | Action ||(bits)| | | | | | | | Operator | | | bits | | |||
| +----------------+--+--+--+---------+---------------------++------+ | +============+====+====+====+=======+==========+==========+==+======+ | |||
| |ICMPv6 Type |8 |1 |Up|128 | equal | not-sent || | | |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 Type | 8 | 1 | Dw | 129 | equal | not-sent | | | | |||
| |ICMPv6 Identif. |16|1 |Bi|0 | ignore | not-sent || | | +------------+----+----+----+-------+----------+----------+--+------+ | |||
| |ICMPv6 Sequence |16|1 |Bi|0 | MSB(24)| LSB || 8 | | |ICMPv6 Code | 8 | 1 | Bi | 0 | equal | not-sent | | | | |||
| +================+==+==+==+=========+========+============++======+ | +------------+----+----+----+-------+----------+----------+--+------+ | |||
| |ICMPv6 | 16 | 1 | Bi | 0 | ignore | not-sent | | | | ||||
| |Identifier | | | | | | | | | | ||||
| +------------+----+----+----+-------+----------+----------+--+------+ | ||||
| |ICMPv6 | 16 | 1 | Bi | 0 | MSB(24) | LSB | | 8 | | ||||
| |Sequence | | | | | | | | | | ||||
| +------------+----+----+----+-------+----------+----------+--+------+ | ||||
| Figure 2: Example of compression rule for a ping from the device | Table 1: Example of compression rule for a ping from the device | |||
| 4.2. Device is ping'ed | 4.2. Device is ping'ed | |||
| If the Device is ping'ed (i.e., is the destination of an Echo Request | 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 | message), the default behavior is to avoid propagating the Echo | |||
| Request message over the LPWAN. | Request message over the LPWAN. | |||
| This is done by proxying the ping request on the core SCHC C/D. This | 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 | requires to add an action when the rule is selected. Instead of been | |||
| processed by the compressor, the packet description is processed by a | processed by the compressor, the packet description is processed by a | |||
| ping proxy. The rule is used for the selection, so CDAs are not | ping proxy. The rule is used for the selection, so CDAs are not | |||
| necessary. | necessary. | |||
| The resulting behavior is shown on Figure 3 and described below: | The resulting behavior is shown on Figure 2 and described below: | |||
| Device NGW core SCHC C/D Internet Host | Device NGW core SCHC C/D Internet Host | |||
| | | | Echo Request, Code=0 | | | | | Echo Request, Code=0 | | |||
| | | |<---------------------------| | | | |<---------------------------| | |||
| | | | | | | | | | | |||
| | | |--------------------------->| | | | |--------------------------->| | |||
| | | | Echo Reply, Code=0 | | | | | Echo Reply, Code=0 | | |||
| Figure 3: Examples of ICMPv6 Echo Request/Reply | Figure 2: Examples of ICMPv6 Echo Request/Reply | |||
| 4.2.1. Rule example | 4.2.1. Rule example | |||
| The following rule shows an example of a compression rule for pinging | The following rule shows an example of a compression rule for pinging | |||
| a device. | a device. | |||
| +----------------+--+--+--+---------+--------+------------++------+ | +============+====+====+====+=======+==========+==========+==+======+ | |||
| | Field |FL|FP|DI| Value | Match | Comp Decomp|| Sent | | |Field | FL | FP | DI | Value | Matching | CDA | | Sent | | |||
| | | | | | | Opera. | Action ||(bits)| | | | | | | | Operator | | | bits | | |||
| +----------------+--+--+--+---------+---------------------++------+ | +============+====+====+====+=======+==========+==========+==+======+ | |||
| |ICMPv6 Type |8 |1 |Dw|128 | equal | not-sent || | | |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 Type | 8 | 1 | Up | 129 | equal | not-sent | | | | |||
| |ICMPv6 Identif. |16|1 |Bi|0 | ignore | value-sent || | | +------------+----+----+----+-------+----------+----------+--+------+ | |||
| |ICMPv6 Sequence |16|1 |Bi|0 | MSB(24)| LSB || 8 | | |ICMPv6 Code | 8 | 1 | Bi | 0 | equal | not-sent | | | | |||
| +================+==+==+==+=========+========+============++======+ | +------------+----+----+----+-------+----------+----------+--+------+ | |||
| |ICMPv6 | 16 | 1 | Bi | 0 | ignore | not-sent | | | | ||||
| |Identifier | | | | | | | | | | ||||
| +------------+----+----+----+-------+----------+----------+--+------+ | ||||
| |ICMPv6 | 16 | 1 | Bi | 0 | MSB(24) | LSB | | 8 | | ||||
| |Sequence | | | | | | | | | | ||||
| +------------+----+----+----+-------+----------+----------+--+------+ | ||||
| Figure 4: Example of compression rule for a ping to a device | Table 2: Example of compression rule for a ping to a device | |||
| In this example, type and code are elided, the identifer has to be | In this example, type and code are elided, the identifer has to be | |||
| sent, and the sequence number is limited to one byte. | sent, and the sequence number is limited to one byte. | |||
| 4.3. Device is the source of an ICMPv6 error message | 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. | |||
| skipping to change at page 7, line 47 ¶ | skipping to change at page 8, line 15 ¶ | |||
| 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 5: Example of ICMPv6 error message sent back to the Internet | Figure 3: Example of ICMPv6 error message sent back to the Internet | |||
| Figure 5 shows an example of an IPv6 packet trying to reach a Device. | Figure 3 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 | 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 | IPv6 address to generate an ICMPv6 message. when compressing a packet | |||
| containing an IPv6 header, no compression rules are found and: * if a | containing an IPv6 header, no compression rules are found and: * if a | |||
| skipping to change at page 9, line 16 ¶ | skipping to change at page 9, line 27 ¶ | |||
| | | | | | | | | | | |||
| | SCHC compressed IPv6 | | | | SCHC compressed IPv6 | | | |||
| |~~~~~~~~~~~|----------->|----------------------X | | |~~~~~~~~~~~|----------->|----------------------X | | |||
| | | | <--------------------- | | | | | <--------------------- | | |||
| |<~~~~~~~~~~|------------| ICMPv6 Host unreachable | | |<~~~~~~~~~~|------------| ICMPv6 Host unreachable | | |||
| |SCHC compressed ICMPv6 | | | |SCHC compressed ICMPv6 | | | |||
| | | | | | | | | | | |||
| | | | | | | | | | | |||
| Figure 6: Example of ICMPv6 error message sent back to the Device | Figure 4: Example of ICMPv6 error message sent back to the Device | |||
| Figure 6 illustrates this behavior. The ICMPv6 error message is | Figure 4 illustrates this behavior. The ICMPv6 error message is | |||
| compressed as described in Section 4.4.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.4.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 7. | shown in Figure 5. | |||
| 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 7: ICMPv6 Error Message format | Figure 5: 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 11, line 7 ¶ | skipping to change at page 11, line 20 ¶ | |||
| 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 8. | Figure 6. | |||
| 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 8: Example of traceroute to the LPWAN Device | Figure 6: 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.3, 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 | |||
| skipping to change at page 12, line 13 ¶ | skipping to change at page 12, line 20 ¶ | |||
| TODO | TODO | |||
| 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] | ||||
| Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and J. | ||||
| Zuniga, "Static Context Header Compression (SCHC) and | ||||
| fragmentation for LPWAN, application to UDP/IPv6", draft- | ||||
| ietf-lpwan-ipv6-static-context-hc-24 (work in progress), | ||||
| 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, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-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>. | |||
| skipping to change at page 13, line 10 ¶ | skipping to change at page 13, line 10 ¶ | |||
| [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, | DOI 10.17487/RFC8200, July 2017, | |||
| <https://www.rfc-editor.org/info/rfc8200>. | <https://www.rfc-editor.org/info/rfc8200>. | |||
| [RFC8724] Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and JC. | ||||
| Zúñiga, "SCHC: Generic Framework for Static Context Header | ||||
| Compression and Fragmentation", RFC 8724, | ||||
| DOI 10.17487/RFC8724, April 2020, | ||||
| <https://www.rfc-editor.org/info/rfc8724>. | ||||
| 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 | |||
| skipping to change at page 14, line 15 ¶ | skipping to change at page 14, line 15 ¶ | |||
| Universidad Diego Portales | Universidad Diego Portales | |||
| Vergara 432 | Vergara 432 | |||
| Santiago | Santiago | |||
| Chile | Chile | |||
| Email: diego.dujovne@mail.udp.cl | Email: diego.dujovne@mail.udp.cl | |||
| Juan Carlos Zuniga | Juan Carlos Zuniga | |||
| SIGFOX | SIGFOX | |||
| 425 rue Jean Rostand | 425 rue Jean Rostand | |||
| Labege 31670 | 31670 Labege | |||
| France | France | |||
| Email: JuanCarlos.Zuniga@sigfox.com | Email: JuanCarlos.Zuniga@sigfox.com | |||
| End of changes. 36 change blocks. | ||||
| 68 lines changed or deleted | 77 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/ | ||||