| < draft-ietf-roll-mopex-02.txt | draft-ietf-roll-mopex-03.txt > | |||
|---|---|---|---|---|
| ROLL R. Jadhav, Ed. | ROLL R. Jadhav, Ed. | |||
| Internet-Draft Huawei Tech | Internet-Draft Huawei Tech | |||
| Intended status: Standards Track P. Thubert | Intended status: Standards Track P. Thubert | |||
| Expires: April 2, 2021 Cisco | Expires: October 2, 2021 Cisco | |||
| M. Richardson | M. Richardson | |||
| Sandelman Software Works | Sandelman Software Works | |||
| September 29, 2020 | March 31, 2021 | |||
| Mode of Operation extension | Mode of Operation extension | |||
| draft-ietf-roll-mopex-02 | draft-ietf-roll-mopex-03 | |||
| Abstract | Abstract | |||
| RPL allows different mode of operations which allows nodes to have a | RPL allows different mode of operations which allows nodes to have a | |||
| consensus on the basic primitives that must be supported to join the | consensus on the basic primitives that must be supported to join the | |||
| network. The MOP field in [RFC6550] is of 3 bits and is fast | network. The MOP field in [RFC6550] is of 3 bits and is fast | |||
| depleting. This document extends the MOP for future use. | depleting. This document extends the MOP for future use. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 36 ¶ | skipping to change at page 1, line 36 ¶ | |||
| 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 April 2, 2021. | This Internet-Draft will expire on October 2, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 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/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 | |||
| skipping to change at page 2, line 32 ¶ | skipping to change at page 2, line 32 ¶ | |||
| 7.4. Change in RPL Control Option field . . . . . . . . . . . 7 | 7.4. Change in RPL Control Option field . . . . . . . . . . . 7 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 8 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 8 | 9.2. Informative References . . . . . . . . . . . . . . . . . 8 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 1. Introduction | 1. Introduction | |||
| RPL [RFC6550] specifies a proactive distance-vector based routing | RPL [RFC6550] specifies a proactive distance-vector based routing | |||
| scheme. The protocol creates a DAG-like structure which operates | scheme. The protocol creates a DAG-like structure that operates with | |||
| with a given "Mode of Operation" (MOP) determining the minimal and | a given "Mode of Operation" (MOP) determining the minimum and | |||
| mandatory set of primitives to be supported by all the participating | mandatory set of primitives to be supported by all the participating | |||
| nodes. | nodes. | |||
| MOP as per [RFC6550] is a 3-bit value carried in DIO messages and is | MOP as per [RFC6550] is a 3-bit value carried in DIO messages and is | |||
| specific to the RPL Instance. The recipient of the DIO message can | specific to the RPL Instance. The recipient of the DIO message can | |||
| join the specified network as a router only when it can support the | join the specified network as a router only when it can support the | |||
| primitives as required by the mode of operation value. For example, | primitives as required by the mode of operation value. For example, | |||
| in case of MOP=3 (Storing MOP with multicast support) the nodes can | in the case of MOP=3 (Storing MOP with multicast support), the nodes | |||
| join the network as routers only when they can handle the DAO | can join the network as routers only when they can handle the DAO | |||
| advertisements from the peers and manage routing tables. The 3-bit | advertisements from the peers and manage routing tables. The 3-bit | |||
| value is already exhausted and requires replenishment. This document | value is already exhausted and requires replenishment. This document | |||
| introduces a mechanism to extend mode of operation values. | introduces a mechanism to extend the mode of operation values. | |||
| This document further extends the RPL Control Option syntax to handle | This document further extends the RPL Control Option syntax to handle | |||
| generic flags. The primary aim of these flags is to define the | generic flags. The primary aim of these flags is to define the | |||
| behaviour of a node not supporting the given control type. If a node | behavior of a node not supporting the given control type. If a node | |||
| does not support a given RPL Control Option, there are following | does not support a given RPL Control Option, there are following | |||
| possibilities: | possibilities: | |||
| Strip off the option | Strip off the option | |||
| Copy the option as-is | Copy the option as-is | |||
| Ignore the message containing this option | Ignore the message containing this option | |||
| Let the node join in only as a 6LN to this parent | Let the node join in only as a 6LN to this parent | |||
| skipping to change at page 3, line 27 ¶ | skipping to change at page 3, line 27 ¶ | |||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
| MOP: Mode of Operation. Identifies the mode of operation of the RPL | MOP: Mode of Operation. Identifies the mode of operation of the RPL | |||
| Instance as administratively provisioned at and distributed by the | Instance as administratively provisioned at and distributed by the | |||
| DODAG root. | DODAG root. | |||
| MOPex: Extended MOP: This document extends the MOP values over a | MOPex: Extended MOP: This document extends the MOP values over a | |||
| bigger range. This extension of MOP is called MOPex. | bigger range. This extension of MOP is called MOPex. | |||
| DAO: DODAG Advertisement Object. An RPL message used to advertise | DAO: DODAG Advertisement Object. An RPL message used to advertise | |||
| the target information in order to establish routing adjacencies. | the target information to establish routing adjacencies. | |||
| DIO: DODAG Information Object. An RPL message initiated by the root | DIO: DODAG Information Object. An RPL message initiated by the root | |||
| and used to advertise the network configuration information. | and used to advertise the network configuration information. | |||
| Current parent: Parent 6LR node before switching to the new path. | Current parent: Parent 6LR node before switching to the new path. | |||
| This document uses terminology described in [RFC6550]. For the sake | This document uses the terminology described in [RFC6550]. For the | |||
| of readability all the known relevant terms are repeated in this | sake of readability, all the known relevant terms are repeated in | |||
| section. | this section. | |||
| 2. Requirements for this document | 2. Requirements for this document | |||
| Following are the requirements considered for this documents: | Following are the requirements considered for this documents: | |||
| REQ1: MOP extension. Current MOP of 3-bit is fast depleting. An | REQ1: MOP extension. The 3-bits MOP as defined in [RFC6550] is fast | |||
| MOP extension needs to extend the possibility of adding new | depleting. An MOP extension needs to extend the possibility | |||
| MOPs in the future. | of adding new MOPs in the future. | |||
| REQ2: Backwards compatibility. The new options and new fields in | REQ2: Backwards compatibility. The new options and new fields in | |||
| the DIO message should be backward compatible i.e. if there | the DIO message should be backward compatible i.e. if there | |||
| are nodes which support old MOPs they could still operate in | are nodes that support old MOPs they could still operate in | |||
| their own RPL Instances. | their RPL Instances. | |||
| 3. Extended MOP Control Message Option | 3. Extended MOP Control Message Option | |||
| This document reserves existing MOP value 7 to be used as an | This document reserves the existing MOP value 7 to be used as an | |||
| extender. DIO messages with MOP value of 7 may refer to the Extended | extender. DIO messages with an MOP value of 7 MUST refer to the | |||
| MOP (MOPex) option in the DIO message. | Extended MOP (MOPex) option in the DIO message. | |||
| 0 1 2 | 0 1 2 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------- | |||
| | Type = TODO | Opt Length | OP-value | | Type = TODO | Opt Length | OP-value | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------- | |||
| Figure 1: Extended MOP Option | Figure 1: Extended MOP Option | |||
| The option length value MUST be less than or equal to 2. An option | The option length value MUST be less than or equal to 2. An option | |||
| skipping to change at page 4, line 34 ¶ | skipping to change at page 4, line 34 ¶ | |||
| The MOPex option MUST be used only if the base DIO MOP is 7. If the | The MOPex option MUST be used only if the base DIO MOP is 7. If the | |||
| base DIO MOP is 7 and if the MOPex option is not present then the DIO | base DIO MOP is 7 and if the MOPex option is not present then the DIO | |||
| MUST be silently ignored. If the base DIO MOP is less than 7 then | MUST be silently ignored. If the base DIO MOP is less than 7 then | |||
| MOPex MUST NOT be used. In case the base MOP is 7 and if the MOPex | MOPex MUST NOT be used. In case the base MOP is 7 and if the MOPex | |||
| option is present, then the implementation MUST use the final MOP | option is present, then the implementation MUST use the final MOP | |||
| value from the MOPex. | value from the MOPex. | |||
| Note that [RFC6550] allows a node that does not support the received | Note that [RFC6550] allows a node that does not support the received | |||
| MOP to still join the network as a leaf node. This semantics | MOP to still join the network as a leaf node. This semantics | |||
| continues to be true even in case of MOPex. | continues to be true even in the case of MOPex. | |||
| 3.2. Use of values 0-6 in the MOPex option | 3.2. Use of values 0-6 in the MOPex option | |||
| The MOPex option could also be allowed to re-use the values 0-6, | The MOPex option could also be allowed to re-use the values 0-6, | |||
| which have been used for MOP so far. The use of current MOPs in | which have been used for MOP so far. The use of current MOPs in | |||
| MOPex indicates that the MOP is supported with extended set of | MOPex indicates that the MOP is supported with an extended set of | |||
| semantics for e.g., the capability options | semantics e.g., the capability options [I-D.ietf-roll-capabilities]. | |||
| [I-D.ietf-roll-capabilities]. | ||||
| 4. Extending RPL Control Options | 4. Extending RPL Control Options | |||
| Section 6.7.1 of RFC6550 explains the RPL Control Message Option | Section 6.7.1 of RFC6550 explains the RPL Control Message Option | |||
| Generic Format. This document extends this format to following: | Generic Format. This document extends this format to following: | |||
| 0 1 2 | 0 1 2 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+----------- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+----------- | |||
| |X| OptionType| Option Length |Opt Flags|J|I|C| Option Data | |X| OptionType| Option Length |Opt Flags|J|I|C| Option Data | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+----------- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+----------- | |||
| Figure 2: Extended RPL Option Format | Figure 2: Extended RPL Option Format | |||
| New fields in extended RPL Control Message Option Format: | New fields in extended RPL Control Message Option Format: | |||
| 'X' bit in Option Type: Value 1 indicates that this is an extended | 'X' bit in Option Type: Value 1 indicates that this is an extended | |||
| option. If the 'X' flag is set, a 1 byte Option Flags follows the | option. If the 'X' flag is set, a 1-byte Option Flags follows the | |||
| Option Length field. | Option Length field. | |||
| Option Length: 8-bit unsigned integer, representing the length in | Option Length: 8-bit unsigned integer, representing the length in | |||
| octets of the option, not including the Option Type and Length | octets of the option, not including the Option Type and Length | |||
| fields. Option Flags and variable length Option Data fields are | fields. Option Flags and variable length Option Data fields are | |||
| included in the length. | included in the length. | |||
| 'J' (Join) bit in Option Flags: A node MUST join only as a 6LN if | 'J' (Join) bit in Option Flags: A node MUST join only as a 6LN if | |||
| the Option Type is not understood. | the Option Type is not understood. | |||
| 'C' (Copy) bit in Option Flags: A node that does not understand | 'C' (Copy) bit in Option Flags: A node that does not understand | |||
| the Option Type MUST copy the Option while generating the | the Option Type MUST copy the Option while generating the | |||
| corresponding message. For e.g., if a 6LR receives a DIO message | corresponding message. E.g., if a 6LR receives a DIO message with | |||
| with an unknown Option with 'C' bit set and if the 6LR choses to | an unknown Option with 'C' bit set and if the 6LR chooses to | |||
| accept this node as the preferred parent then the node MUST copy | accept this node as the preferred parent then the node MUST copy | |||
| this option in the subsequent DIO message it generates. | this option in the subsequent DIO message it generates. | |||
| Alternatively, if the 'C' flag is unset the node MUST strip off | Alternatively, if the 'C' flag is unset the node MUST strip off | |||
| the option and process the message. | the option and process the message. | |||
| 'I' (Ignore) bit in Option Flags: A node that does not understand | 'I' (Ignore) bit in Option Flags: A node that does not understand | |||
| the Option Type MUST ignore this whole message if the 'I' bit is | the Option Type MUST ignore this whole message if the 'I' bit is | |||
| set. If 'I' bit is set than the value of 'J' and 'C' bits are | set. If the 'I' bit is set then the value of 'J' and 'C' bits are | |||
| irrelevant and the message MUST be ignored. | irrelevant and the message MUST be ignored. | |||
| Note that this format does not deprecate the previous format, it | Note that this format does not deprecate the previous format, it | |||
| simply extends it and the new format is applicable only when 2nd bit | simply extends it and the new format is applicable only when 2nd bit | |||
| ('X' flag) of the Option Type is set. Option Type 0x80 to 0xFF are | ('X' flag) of the Option Type is set. Option Type 0x80 to 0xFF are | |||
| thus applicable only as extended options. | thus applicable only as extended options. | |||
| +---------+---------+-----------------------------------------------+ | +---------+---------+-----------------------------------------------+ | |||
| | 'J' bit | 'C' bit | Handling | | | 'J' bit | 'C' bit | Handling | | |||
| +---------+---------+-----------------------------------------------+ | +---------+---------+-----------------------------------------------+ | |||
| End of changes. 19 change blocks. | ||||
| 31 lines changed or deleted | 30 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/ | ||||