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/