draft-ietf-6tisch-6top-sf0-01.txt | draft-ietf-6tisch-6top-sf0-02.txt | |||
---|---|---|---|---|
6TiSCH D. Dujovne, Ed. | 6TiSCH D. Dujovne, Ed. | |||
Internet-Draft Universidad Diego Portales | Internet-Draft Universidad Diego Portales | |||
Intended status: Informational LA. Grieco | Intended status: Standards Track LA. Grieco | |||
Expires: January 9, 2017 Politecnico di Bari | Expires: May 4, 2017 Politecnico di Bari | |||
MR. Palattella | MR. Palattella | |||
University of Luxembourg | Luxembourg Institute of Science and Technology (LIST) | |||
N. Accettura | N. Accettura | |||
University of California Berkeley | LAAS-CNRS | |||
July 8, 2016 | October 31, 2016 | |||
6TiSCH 6top Scheduling Function Zero (SF0) | 6TiSCH 6top Scheduling Function Zero (SF0) | |||
draft-ietf-6tisch-6top-sf0-01 | draft-ietf-6tisch-6top-sf0-02 | |||
Abstract | Abstract | |||
This document defines a 6top Scheduling Function called "Scheduling | This document defines a Scheduling Function called "Scheduling | |||
Function Zero" (SF0). SF0 dynamically adapts the number of reserved | Function Zero" (SF0). SF0 dynamically adapts the number of allocated | |||
cells between neighbor nodes, based on the currently allocated | cells between neighbor nodes, based on the amount of currently | |||
bandwidth and the neighbour nodes' requirements. Neighbor nodes | allocated cells and the neighbor nodes' cell requirements. Neighbor | |||
negotiate in a distributed neighbor-to-neighbor basis the cell(s) to | nodes negotiate in a distributed neighbor-to-neighbor basis the | |||
be added/deleted. SF0 uses the 6P signaling messages to add/delete | number of cell(s) to be added/deleted. SF0 uses the 6P signaling | |||
cells in the schedule. Some basic rules for deciding when to add/ | messages to add/delete cells in the schedule. This function selects | |||
delete cells and for selecting the cells to be added/deleted within | the candidate cells from the schedule, defines which cells will be | |||
the schedule are also provided. | added/deleted and triggers the allocation/deallocation process. | |||
Requirements Language | Requirements Language | |||
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 RFC | "OPTIONAL" in this document are to be interpreted as described in RFC | |||
2119 [RFC2119]. | 2119 [RFC2119]. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 2, line 4 ¶ | skipping to change at page 2, line 4 ¶ | |||
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 http://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 January 9, 2017. | This Internet-Draft will expire on May 4, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | (http://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 . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. TEMPORARY EDITORIAL NOTES . . . . . . . . . . . . . . . . . . 3 | |||
2. Scheduling Function Identifier . . . . . . . . . . . . . . . 3 | 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
3. Rules for Adding/Deleting Cells . . . . . . . . . . . . . . . 3 | 3. Scheduling Function Identifier . . . . . . . . . . . . . . . 4 | |||
3.1. SF0 Triggering Events . . . . . . . . . . . . . . . . . . 3 | 4. SF0 Triggering Events . . . . . . . . . . . . . . . . . . . . 4 | |||
3.2. SF0 Bandwidth Estimation Algorithm . . . . . . . . . . . 3 | 5. SF0 Cell Estimation Algorithm . . . . . . . . . . . . . . . . 5 | |||
3.3. SF0 Allocation Policy . . . . . . . . . . . . . . . . . . 4 | 6. SF0 Allocation Policy . . . . . . . . . . . . . . . . . . . . 5 | |||
4. Rules for CellList . . . . . . . . . . . . . . . . . . . . . 5 | 7. Rules for CellList . . . . . . . . . . . . . . . . . . . . . 6 | |||
5. 6P Timeout Value . . . . . . . . . . . . . . . . . . . . . . 6 | 8. 6P Timeout Value . . . . . . . . . . . . . . . . . . . . . . 7 | |||
6. Meaning of Metadata Information . . . . . . . . . . . . . . . 6 | 9. Meaning of Metadata Information . . . . . . . . . . . . . . . 7 | |||
7. Node Behavior at Boot . . . . . . . . . . . . . . . . . . . . 6 | 10. Node Behavior at Boot . . . . . . . . . . . . . . . . . . . . 7 | |||
8. Relocating Cells . . . . . . . . . . . . . . . . . . . . . . 6 | 11. Relocating Cells . . . . . . . . . . . . . . . . . . . . . . 7 | |||
9. Forced Cell Deletion Policy . . . . . . . . . . . . . . . . . 7 | 12. Forced Cell Deletion Policy . . . . . . . . . . . . . . . . . 8 | |||
10. 6P Error Handling . . . . . . . . . . . . . . . . . . . . . . 7 | 13. 6P Error Handling . . . . . . . . . . . . . . . . . . . . . . 8 | |||
11. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 14. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
12. Implementation Status . . . . . . . . . . . . . . . . . . . . 7 | 15. Implementation Status . . . . . . . . . . . . . . . . . . . . 8 | |||
13. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 16. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
14. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 17. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
15. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 | 18. 6P Compliance . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
16. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 19. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
16.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 20. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
16.2. Informative References . . . . . . . . . . . . . . . . . 9 | 20.1. Normative References . . . . . . . . . . . . . . . . . . 10 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | 20.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
Appendix A. [TEMPORARY] Changelog . . . . . . . . . . . . . . . 11 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
1. Introduction | 1. TEMPORARY EDITORIAL NOTES | |||
This document defines the Scheduling Function for the 6top sublayer | This document is an Internet Draft, so it is work-in-progress by | |||
[I-D.wang-6tisch-6top-sublayer] called "Scheduling Function Zero" | nature. It contains the following work-in-progress elements: | |||
(SF0). | ||||
This document addresses the requirements for a scheduling function | o "TODO" statements are elements which have not yet been written by | |||
listed in [I-D.wang-6tisch-6top-sublayer], Section 4.2, and follows | the authors for some reason (lack of time, ongoing discussions | |||
the recommended outline from Section 4.3. This draft agrees with the | with no clear consensus, etc). The statement does indicate that | |||
terminology defined on [I-D.ietf-6tisch-terminology] and is designed | the text will be written at some time. | |||
within the context of [RFC7554] | o "TEMPORARY" appendices are there to capture current ongoing | |||
discussions, or the changelog of the document. These appendices | ||||
will be removed in the final text. | ||||
o "IANA_" identifiers are placeholders for numbers assigned by IANA. | ||||
These placeholders are to be replaced by the actual values they | ||||
represent after their assignment by IANA. | ||||
o The string "REMARK" is put before a remark (questions, suggestion, | ||||
etc) from an author, editor of contributor. These are on-going | ||||
discussions at the time to writing, NOT part of the final text. | ||||
o This section will be removed in the final text. | ||||
2. Scheduling Function Identifier | 2. Introduction | |||
The Scheduling Function Identifier (SFID) of SF0 is IANA_SFID_SF0. | This document defines a minimal Scheduling Function for the 6top | |||
sublayer [I-D.ietf-6tisch-6top-protocol], called "Scheduling Function | ||||
Zero" (SF0). SF0 is designed to offer the minimal set of | ||||
functionalities to be usable in a wide range of applications. SF0 | ||||
defines two algorithms: The Scheduling Algorithm defines the number | ||||
of cells to allocate/delete between two neighbours and the relocation | ||||
algorithm defines when to relocate a cell. | ||||
3. Rules for Adding/Deleting Cells | The Scheduling Algorithm: A number of TX and/or RX cells must be | |||
allocated between neighbor nodes in order to enable data transmission | ||||
among them. From the allocated cells, a part of them can be under | ||||
effective use by the neighbours, while the rest of cells are over- | ||||
provisioned to detect an increase in cell usage without packet loss. | ||||
The Scheduling Algorithm collects the cell allocation/deletion | ||||
requests from the neighbors and the number of cells which are | ||||
currently under usage. First, a Cell Estimation Algotithm calculates | ||||
the number of required cells by adding the collected values and | ||||
second, the calculated value is given to the Allocation Policy, which | ||||
provides stability by adding hystheresis and overprovisioning by | ||||
deciding when to schedule the new number of cells, according to a | ||||
threshold. In order to reduce consumption, this algorithm is | ||||
triggered only when there is a change on the number of effectively | ||||
used cells or if there is a change on the number of requested cells | ||||
from a particular node. | ||||
A node running SF0 determines when to add/delete cells in a three- | The Relocation Algorithm: Allocated cells may experiment packet loss | |||
step process: | from different sources, such as noise, interference or cell collision | |||
(after the same cell is allocated by other nodes in range on the | ||||
network). In order to avoid this problem, Packet Delivery Rate (PDR) | ||||
is monitored periodically for each allocated cell. A relocation is | ||||
triggered when the PDR value drops below a certain threshold, | ||||
compared to the average PDR of the rest of allocated cells. The | ||||
destination location on the schedule is defined randomly. | ||||
1. It waits for a triggering event (Section 3.1). | To synthesize, a node running SF0 determines when to add/delete cells | |||
2. It applies the Bandwidth Estimation Algorithm (BEA) for a | in a three-step process: | |||
particular neighbor to determine how much bandwidth is required | ||||
to that neighbor (Section 3.2). | 1. It waits for a triggering event (Section 4). | |||
2. It applies the Cell Estimation Algorithm (CEA) for a particular | ||||
neighbor to determine how many cells are required to that | ||||
neighbor (Section 5). | ||||
3. It applies the Allocation Policy to compare the number of | 3. It applies the Allocation Policy to compare the number of | |||
required cells to the number of already scheduled cells, and | required cells to the number of already scheduled cells, and | |||
determine the number of cells to add/delete (Section 3.3). | determines the number of cells to add/delete (Section 6). | |||
3.1. SF0 Triggering Events | We expect additional SFs, offering more functionalities for a more | |||
specific use case, to be defined in future documents. SF0 addresses | ||||
the requirements for a scheduling function listed in Section 5.2 | ||||
[TODO: update if needed] from [I-D.ietf-6tisch-6top-protocol], and | ||||
follows the recommended outline listed in Section 5.3 [TODO: update | ||||
if needed] of [I-D.ietf-6tisch-6top-protocol]. This document follows | ||||
the terminology defined in [I-D.ietf-6tisch-terminology]. | ||||
3. Scheduling Function Identifier | ||||
The Scheduling Function Identifier (SFID) of SF0 is IANA_SFID_SF0. | ||||
4. SF0 Triggering Events | ||||
We RECOMMEND SF0 to be triggered at least by the following events: | We RECOMMEND SF0 to be triggered at least by the following events: | |||
1. If there is a change in the Current Outgoing Bandwidth Usage | 1. If there is a change in the current number of used cells | |||
(COBU) | 2. If there is a successful cell allocation/deallocation process | |||
2. If there is any New Incoming Bandwidth Requirements from | with the neighbour. | |||
neighbour nodes (NIBR) | ||||
This allows SF0 to be triggered by any change in local outgoing | This allows SF0 to be triggered by any change in locally generated or | |||
bandwidth and/or incoming bandwidth. A relocation request from the | incoming traffic. The exact mechanism of when SF0 is triggered is | |||
neighbour is considered as an Incoming Bandwidth Request, given that | implementation-specific. | |||
it is expected to increase packet delivery rate on the relocated | ||||
cells, thus increasing the required bandwidth. The exact mechanism | ||||
of when SF0 is triggered is implementation-specific. | ||||
3.2. SF0 Bandwidth Estimation Algorithm | 5. SF0 Cell Estimation Algorithm | |||
The Bandwidth Estimation Algorithm takes into account the sum of the | The Cell Estimation Algorithm takes into account the new incoming | |||
incoming bandwidth requirements from the neighbour nodes and also the | cell requirements from the neighbor node and the current outgoing | |||
current outgoing bandwidth value. This allows the node to estimate | number of effectively used cells. This allows the algorithm to | |||
the total outgoing bandwidth requirement. As a consequence, the | estimate a new number of cells to be allocated. As a consequence, | |||
Bandwidth Estimation Algorithm for SF0 follows the steps described | the Cell Estimation Algorithm for SF0 follows the steps described | |||
below: | below: | |||
1. Collect the New Incoming Bandwidth Requirements from neighbour | 1. Collect the new incoming cell requirements from the neighbor | |||
nodes (NIBR) | 2. Collect the current number of effectively used cells | |||
2. Obtain the Current Outgoing Bandwidth Usage (COBU) | 3. Calculate the new number of cells to be allocated by adding the | |||
3. Calculate the New Outgoing Bandwidth (NOB) as: NOB=COBU+NIBR | current number of effectively used cells and the new incoming | |||
4. Submit the request to the allocation policy | cells requirement | |||
4. Submit the request to the allocation policy as REQUIREDCELLS | ||||
5. Return to step 1 and wait for a triggering event. | 5. Return to step 1 and wait for a triggering event. | |||
3.3. SF0 Allocation Policy | A new incoming cell requirement is the result of a successful | |||
allocation process from the neighbor. TODO/REMARK: Add a number of | ||||
cells to the required cells as OVERPROVISION to guarantee that the | ||||
growth on the effectively used cells can be identified without packet | ||||
loss. This value is implementation specific. A value of | ||||
OVERPROVISION equal to zero leads to queue growth and possible packet | ||||
loss, since there are no overprovisioned cells to detect if there is | ||||
a growth of effectively used cells. | ||||
6. SF0 Allocation Policy | ||||
The "Allocation Policy" is the set of rules used by SF0 to decide | The "Allocation Policy" is the set of rules used by SF0 to decide | |||
when to add/delete cells to a particular neighbor to satisfy the | when to add/delete cells to a particular neighbor to satisfy the cell | |||
bandwidth requirements. | requirements. | |||
SF0 uses the following parameters: | SF0 uses the following parameters: | |||
SCHEDULEDCELLS: The number of cells scheduled from the current node | SCHEDULEDCELLS: The number of cells scheduled from the current node | |||
to a particular neighbor. | to a particular neighbor. | |||
REQUIREDCELLS: The number of cells calculated by the Bandwidth | REQUIREDCELLS: The number of cells calculated by the Cell Estimation | |||
Estimation Algorithm from the current node to that neighbor. | Algorithm from the current node to that neighbor. | |||
SF0THRESH: Threshold parameter introducing cell over-provisioning in | SF0THRESH: Threshold parameter introducing cell over-provisioning in | |||
the allocation policy. It is a non-negative value expressed as | the allocation policy. It is a non-negative value expressed as | |||
number of cells. The definition of this value is implementation- | number of cells. The definition of this value is implementation- | |||
specific. A setting of SF0THRESH>0 will cause the node to | specific. A setting of SF0THRESH>0 will cause the node to | |||
allocate at least SF0THRESH cells to each of its' neighbours. | allocate at least SF0THRESH cells to each of its' neighbors. | |||
The SF0 allocation policy compares REQUIREDCELLS with SCHEDULEDCELLS | The SF0 allocation policy compares REQUIREDCELLS with SCHEDULEDCELLS | |||
and decides to add/delete cells taking into account SF0THRESH. This | and decides to add/delete cells taking into account SF0THRESH. This | |||
is illustrated in Figure 1. | is illustrated in Figure 1. | |||
SCHEDULEDCELLS | SCHEDULEDCELLS | |||
<---------------------------------> | <---------------------------------> | |||
+---+---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+---+ | |||
| | | | | | | | | | | | | | | | | | | | | | |||
+---+---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+---+ | |||
|<--------->| | |<----------------->| | |||
| SF0THRESH | | | SF0THRESH | | |||
| | | | | | |||
REQUIREDCELLS | | | REQUIREDCELLS | | | |||
+---+---+ | | DELETE | +---+---+ | | DELETE | |||
| | | | | ONE/MORE | | | | | | ONE/MORE | |||
+---+---+ | | CELLS | +---+---+ | | CELLS | |||
| | | | | | |||
REQUIREDCELLS | | REQUIREDCELLS | | |||
+---+---+---+---+---+---+ | DO | +---+---+---+---+---+---+ | DO | |||
| | | | | | | | NOTHING | | | | | | | | | NOTHING | |||
+---+---+---+---+---+---+ | | +---+---+---+---+---+---+ | | |||
| | | | | | |||
REQUIREDCELLS | | REQUIREDCELLS | | |||
+---+---+---+---+---+---+---+---+---+---+ ADD | +---+---+---+---+---+---+---+---+---+---+ ADD | |||
| | | | | | | | | | | ONE/MORE | | | | | | | | | | | | ONE/MORE | |||
+---+---+---+---+---+---+---+---+---+---+ CELLS | +---+---+---+---+---+---+---+---+---+---+ CELLS | |||
Figure 1: The SF0 Allocation Policy | Figure 1: The SF0 Allocation Policy | |||
1. If REQUIREDCELLS<(SCHEDULEDCELLS-SF0THRESH), delete one or more | 1. If REQUIREDCELLS<(SCHEDULEDCELLS-SF0THRESH), delete one or more | |||
cells. | cells. | |||
2. If (SCHEDULEDCELLS-SF0THRESH)<=REQUIREDCELLS<=SCHEDULEDCELLS, do | 2. If (SCHEDULEDCELLS-SF0THRESH)<=REQUIREDCELLS<=SCHEDULEDCELLS, do | |||
nothing. | nothing. | |||
3. If SCHEDULEDCELLS<=REQUIREDCELLS, add one or more cells. | 3. If SCHEDULEDCELLS<=REQUIREDCELLS, add one or more cells. | |||
When SF0THRESH equals 0, any discrepancy between REQUIREDCELLS and | When SF0THRESH equals 0, any discrepancy between REQUIREDCELLS and | |||
SCHEDULEDCELLS triggers an action to add/delete cells. Positive | SCHEDULEDCELLS triggers an action to add/delete cells. Positive | |||
values of SF0THRESH reduce the number of 6P Transactions. | values of SF0THRESH reduce the number of 6P Transactions. | |||
The Allocation Policy also translates the bandwidth requirement into | 7. Rules for CellList | |||
cells according to their PDR. For example, if a cell with a 100% PDR | ||||
is equivalent to 1Kbps, and the required bandwith is 8Kbps, then, the | ||||
number of scheduled cells will be 8. However, if two of the | ||||
allocated cells have a 70% PDR, there number of scheduled cells will | ||||
be 9. | ||||
4. Rules for CellList | ||||
When issuing a 6top ADD Request, SF0 executes the following sequence: | There are two methods to define the CellList: The Whitelist method, | |||
which fills the CellList with the number of proposed cells to the | ||||
neighbour, and the Blacklist, which fills the CellList with the cells | ||||
which cannot be used by the neighbour. The rule to select the method | ||||
is implementation-specific. When issuing a 6top ADD Request, SF0 | ||||
executes the following sequence: | ||||
Whitelist case: | Whitelist case: | |||
The Transaction Source node: Prepares the CellList field by | The Transaction Source node: Prepares the CellList field by | |||
selecting randomly the required cells, verifying that the slot | selecting randomly the required cells, verifying that the slot | |||
offset and channel offset are not occupied and choose | offset and channel offset are not occupied and choose | |||
channelOffset randomly for each cell. | channelOffset randomly for each cell. | |||
The Transaction Destination node: Goes through the cells in the | The Transaction Destination node: Goes through the cells in the | |||
CellList in order, verifying whether there are no slotOffset | CellList in order, verifying whether there are no slotOffset | |||
conflicts. | conflicts. | |||
Blacklist case: | Blacklist case: | |||
The Transaction Source node: Prepares the CellList field by | The Transaction Source node: Prepares the CellList field by | |||
building a list of currently scheduled cells into the CellList. | building a list of currently scheduled cells into the CellList. | |||
The Transaction Destination node: Selects randomly the required | The Transaction Destination node: Selects randomly the required | |||
cells from the unallocated cells on the schedule, verifying | cells from the unallocated cells on the schedule, verifying | |||
that the slot offset and channel offset are not occupied from | that the slot offset and channel offset are not occupied from | |||
the ones on the CellList. | the ones on the CellList. | |||
5. 6P Timeout Value | 8. 6P Timeout Value | |||
The general timeout equals the equivalent time of the number of slots | The general timeout equals the equivalent time of the number of slots | |||
until the next scheduled cell. | until the next scheduled cell. TODO/REMARK: The exact calculation is | |||
currently under discussion on the Mailing List. | ||||
6. Meaning of Metadata Information | 9. Meaning of Metadata Information | |||
The Metadata 16-bit field is used as follows: | The Metadata 16-bit field is used as follows: | |||
BITS 0-7 [SLOTFRAME] are used to identify the slotframe number | BITS 0-7 [SLOTFRAME] are used to identify the slotframe number | |||
BITS 8-14 are RESERVED | BITS 8-14 are RESERVED | |||
BIT 15 [WBLIST] is used to indicate that the CellList provided is | BIT 15 [WBLIST] is used to indicate that the CellList provided is | |||
a Whitelist (value=0) or a Blacklist (value=1). | a Whitelist (value=0) or a Blacklist (value=1). | |||
TODO: length of the SlotFrame SHOULD be an integer multiple of the | 10. Node Behavior at Boot | |||
length of the minimal SlotFrame. | ||||
7. Node Behavior at Boot | ||||
In order to define a known state after the node is restarted, a CLEAR | In order to define a known state after the node is restarted, a CLEAR | |||
command is issued to each of the neighbour nodes to enable a new | command is issued to each of the neighbor nodes to enable a new | |||
allocation process. The 6P Initial Timeout Value provided by SF0 | allocation process. The 6P Initial Timeout Value provided by SF0 | |||
allows the maximum number of TSCH link-layer retries. Given the TSCH | should allow for the maximum number of TSCH link-layer retries, as | |||
parameters for the backoff mechanism, macMinBE and macMaxBE, and the | defined by Section 4.3.4 of [I-D.ietf-6tisch-6top-protocol]. TODO/ | |||
length in seconds of the minimal Slotframe, SM, the timeout value is | REMARK: The initial timeout is currently under discussion. | |||
computed as: timeout = (2^(macMaxBE+1)-2^macMinBE) * SM | ||||
8. Relocating Cells | 11. Relocating Cells | |||
SF0 uses Packet Delivery Rate (PDR) statistics to monitor the | SF0 uses Packet Delivery Rate (PDR) statistics to monitor the | |||
currently allocated cells for cell re-allocation (by changing their | currently allocated cells for cell relocation (by changing their | |||
slotOffset and/or channelOffset) when it finds out that the PDR of | slotOffset and/or channelOffset). When the PDR of one or more | |||
one or more softcells below 20% of the average PDR. | softcells is below 20% of the average PDR of the rest of the | |||
scheduled cells, SF0 relocates the cell(s) to a number of available | ||||
cells selected randomly. REMARK: This criteria is currently under | ||||
discussion; simulation/experimentation is required to either adjust | ||||
the threshold or to change the process. | ||||
9. Forced Cell Deletion Policy | 12. Forced Cell Deletion Policy | |||
TODO: When all the cells are scheduled, we need a policy to free | TODO: When all the cells are scheduled, we need a policy to free | |||
cells, for example, under alarm conditions or if a node dissappears | cells, for example, under alarm conditions or if a node disappears | |||
from the neighbour list. | from the neighbor list. | |||
10. 6P Error Handling | 13. 6P Error Handling | |||
A node implementing SF0 handles a 6P Response depending on the Return | A node implementing SF0 handles a 6P Response depending on the Return | |||
Code it contains: | Code it contains: | |||
RC_SUCCESS: | RC_SUCCESS: | |||
If the number of elements in the CellList is the number of cells | If the number of elements in the CellList is the number of cells | |||
specified in the NumCells field of the 6P ALL Request, the | specified in the NumCells field of the 6P ADD Request, the | |||
operation is complete. The node does not take further action. | operation is complete. The node does not take further action. | |||
If the number of elements in the CellList is smaller (possibly 0) | If the number of elements in the CellList is smaller (possibly 0) | |||
than the number of cells specified in the NumCells field of the 6P | than the number of cells specified in the NumCells field of the 6P | |||
ALL Request, the neighbor has received the request, but less than | ADD Request, the neighbor has received the request, but less than | |||
NumCells of the cells in the CellList were. In that case, the | NumCells of the cells in the CellList were. In that case, the | |||
node MAY retry immediately with a different CellList if the amount | node MAY retry immediately with a different CellList if the amount | |||
of storage space permits, or build a new (random) CellList. | of storage space permits, or build a new (random) CellList. | |||
RC_VER_ERR: The node MUST NOT retry immediately. The node MAY add | RC_ERR_VER: The node MUST NOT retry immediately. The node MAY add | |||
the neighbor node on a blacklist. The node MAY retry to contact | the neighbor node to a blacklist. The node MAY retry to contact | |||
this neighbor later. | this neighbor later. | |||
RC_SFID_ERR: The node MUST NOT retry immediately. The node MAY add | RC_ERR_SFID: The node MUST NOT retry immediately. The node MAY add | |||
the neighbor node on a blacklist. The node MAY retry to contact | the neighbor node to a blacklist. The node MAY retry to contact | |||
this neighbor later. | this neighbor later. | |||
RC_BUSY: Wait for a timeout and restart the scheduling process. | RC_ERR_GEN: The node MUST issue a CLEAR command tot he neighbour. | |||
RC_RESET: Abort 6P Transaction | RC_ERR_BUSY: Wait for a timeout and restart the scheduling process. | |||
RC_ERR_NORES: Wait for a timeout and restart the scheduling process. | ||||
RC_ERR_RESET: Abort 6P Transaction | ||||
RC_ERR: Abort 6P Transaction. The node MAY retry to contact this | RC_ERR: Abort 6P Transaction. The node MAY retry to contact this | |||
neighbor later. | neighbor later. | |||
11. Examples | 14. Examples | |||
TODO | TODO | |||
12. Implementation Status | 15. Implementation Status | |||
This section records the status of known implementations of the | This section records the status of known implementations of the | |||
protocol defined by this specification at the time of posting of this | protocol defined by this specification at the time of posting of this | |||
Internet-Draft, and is based on a proposal described in [RFC6982]. | Internet-Draft, and is based on a proposal described in [RFC6982]. | |||
The description of implementations in this section is intended to | The description of implementations in this section is intended to | |||
assist the IETF in its decision processes in progressing drafts to | assist the IETF in its decision processes in progressing drafts to | |||
RFCs. Please note that the listing of any individual implementation | RFCs. Please note that the listing of any individual implementation | |||
here does not imply endorsement by the IETF. Furthermore, no effort | here does not imply endorsement by the IETF. Furthermore, no effort | |||
has been spent to verify the information presented here that was | has been spent to verify the information presented here that was | |||
supplied by IETF contributors. This is not intended as, and must not | supplied by IETF contributors. This is not intended as, and must not | |||
skipping to change at page 8, line 24 ¶ | skipping to change at page 9, line 23 ¶ | |||
It is up to the individual working groups to use this information as | It is up to the individual working groups to use this information as | |||
they see fit". | they see fit". | |||
OpenWSN: This specification is implemented in the OpenWSN project | OpenWSN: This specification is implemented in the OpenWSN project | |||
[OpenWSN]. The authors of this document are collaborating with | [OpenWSN]. The authors of this document are collaborating with | |||
the OpenWSN community to gather feedback about the status and | the OpenWSN community to gather feedback about the status and | |||
performance of the protocols described in this document. Results | performance of the protocols described in this document. Results | |||
from that discussion will appear in this section in future | from that discussion will appear in this section in future | |||
revision of this specification. | revision of this specification. | |||
13. Security Considerations | 16. Security Considerations | |||
TODO | TODO | |||
14. IANA Considerations | 17. IANA Considerations | |||
o IANA_SFID_SF0 | o IANA_SFID_SF0 | |||
15. Acknowledgments | 18. 6P Compliance | |||
o MUST specify an identifier for that SF. OK | ||||
o MUST specify the rule for a node to decide when to add/delete one | ||||
or more cells to a neighbor. OK | ||||
o MUST specify the rule for a Transaction source to select cells to | ||||
add to the CellList field in the 6P ADD Request. OK | ||||
o MUST specify the rule for a Transaction destination to select | ||||
cells from CellList to add to its schedule. OK | ||||
o MUST specify a value for the 6P Timeout, or a rule/equation to | ||||
calculate it. | ||||
o MUST specify a meaning for the "Metadata" field in the 6P ADD | ||||
Request. OK | ||||
o MUST specify the behavior of a node when it boots. OK | ||||
o MUST specify what to do after an error has occurred (either the | ||||
node sent a 6P Response with an error code, or received one). OK | ||||
o MUST specify the list of statistics to gather. An example | ||||
statistic if the number of transmitted frames to each neighbor. | ||||
In case the SF requires no statistics to be gathered, the specific | ||||
of the SF MUST explicitly state so. | ||||
o SHOULD clearly state the application domain the SF is created for. | ||||
OK | ||||
o SHOULD contain examples which highlight normal and error | ||||
scenarios. | ||||
o SHOULD contain a list of current implementations, at least during | ||||
the I-D state of the document, per [RFC6982]. | ||||
o SHOULD contain a performance evaluation of the scheme, possibly | ||||
through references to external documents. | ||||
o MAY redefine the format of the CellList? field. | ||||
19. Acknowledgments | ||||
Thanks to Kris Pister for his contribution in designing the default | Thanks to Kris Pister for his contribution in designing the default | |||
Bandwidth Estimation Algorithm. Thanks to Qin Wang and Thomas | Bandwidth Estimation Algorithm. Thanks to Qin Wang and Thomas | |||
Watteyne for their support in defining the interaction between SF0 | Watteyne for their support in defining the interaction between SF0 | |||
and the 6top sublayer. | and the 6top sublayer. | |||
This work is partially supported by the Fondecyt 1121475 Project, the | This work is partially supported by the Fondecyt 1121475 Project, the | |||
Inria-Chile "Network Design" group, and the IoT6 European Project | Inria-Chile "Network Design" group, and the IoT6 European Project | |||
(STREP) of the 7th Framework Program (Grant 288445). | (STREP) of the 7th Framework Program (Grant 288445). | |||
16. References | 20. References | |||
16.1. Normative References | 20.1. Normative References | |||
[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, | |||
<http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
16.2. Informative References | 20.2. Informative References | |||
[RFC7554] Watteyne, T., Ed., Palattella, M., and L. Grieco, "Using | ||||
IEEE 802.15.4e Time-Slotted Channel Hopping (TSCH) in the | ||||
Internet of Things (IoT): Problem Statement", RFC 7554, | ||||
DOI 10.17487/RFC7554, May 2015, | ||||
<http://www.rfc-editor.org/info/rfc7554>. | ||||
[RFC6982] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | [RFC6982] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | |||
Code: The Implementation Status Section", RFC 6982, | Code: The Implementation Status Section", RFC 6982, | |||
DOI 10.17487/RFC6982, July 2013, | DOI 10.17487/RFC6982, July 2013, | |||
<http://www.rfc-editor.org/info/rfc6982>. | <http://www.rfc-editor.org/info/rfc6982>. | |||
[I-D.ietf-6tisch-terminology] | [I-D.ietf-6tisch-terminology] | |||
Palattella, M., Thubert, P., Watteyne, T., and Q. Wang, | Palattella, M., Thubert, P., Watteyne, T., and Q. Wang, | |||
"Terminology in IPv6 over the TSCH mode of IEEE | "Terminology in IPv6 over the TSCH mode of IEEE | |||
802.15.4e", draft-ietf-6tisch-terminology-07 (work in | 802.15.4e", draft-ietf-6tisch-terminology-07 (work in | |||
progress), March 2016. | progress), March 2016. | |||
[I-D.wang-6tisch-6top-sublayer] | [I-D.ietf-6tisch-6top-protocol] | |||
Wang, Q. and X. Vilajosana, "6TiSCH Operation Sublayer | Wang, Q. and X. Vilajosana, "6top Protocol (6P)", draft- | |||
(6top)", draft-wang-6tisch-6top-sublayer-04 (work in | ietf-6tisch-6top-protocol-02 (work in progress), July | |||
progress), November 2015. | 2016. | |||
[OpenWSN] Watteyne, T., Vilajosana, X., Kerkez, B., Chraim, F., | [OpenWSN] Watteyne, T., Vilajosana, X., Kerkez, B., Chraim, F., | |||
Weekly, K., Wang, Q., Glaser, S., and K. Pister, "OpenWSN: | Weekly, K., Wang, Q., Glaser, S., and K. Pister, "OpenWSN: | |||
a Standards-Based Low-Power Wireless Development | a Standards-Based Low-Power Wireless Development | |||
Environment", Transactions on Emerging Telecommunications | Environment", Transactions on Emerging Telecommunications | |||
Technologies , August 2012. | Technologies , August 2012. | |||
Appendix A. [TEMPORARY] Changelog | ||||
o draft-ietf-6tisch-6top-sf0-02 | ||||
* Editorial changes (figs, typos, ...) | ||||
Authors' Addresses | Authors' Addresses | |||
Diego Dujovne (editor) | Diego Dujovne (editor) | |||
Universidad Diego Portales | Universidad Diego Portales | |||
Escuela de Informatica y Telecomunicaciones | Escuela de Informatica y Telecomunicaciones | |||
Av. Ejercito 441 | Av. Ejercito 441 | |||
Santiago, Region Metropolitana | Santiago, Region Metropolitana | |||
Chile | Chile | |||
Phone: +56 (2) 676-8121 | Phone: +56 (2) 676-8121 | |||
skipping to change at page 10, line 15 ¶ | skipping to change at page 11, line 40 ¶ | |||
Politecnico di Bari | Politecnico di Bari | |||
Department of Electrical and Information Engineering | Department of Electrical and Information Engineering | |||
Via Orabona 4 | Via Orabona 4 | |||
Bari 70125 | Bari 70125 | |||
Italy | Italy | |||
Phone: 00390805963911 | Phone: 00390805963911 | |||
Email: a.grieco@poliba.it | Email: a.grieco@poliba.it | |||
Maria Rita Palattella | Maria Rita Palattella | |||
University of Luxembourg | Luxembourg Institute of Science and Technology (LIST) | |||
Interdisciplinary Centre for Security, Reliability and Trust | Department 'Environmental Research and Innovation' (ERIN) | |||
4, rue Alphonse Weicker | 41, rue du Brill | |||
Luxembourg L-2721 | Belvaux L-4422 | |||
LUXEMBOURG | Grand-duchy of Luxembourg | |||
Phone: (+352) 46 66 44 5841 | ||||
Email: maria-rita.palattella@uni.lu | ||||
Phone: +352 275 888-5055 | ||||
Email: mariarita.palattella@list.lu | ||||
Nicola Accettura | Nicola Accettura | |||
University of California Berkeley | LAAS-CNRS | |||
Berkeley Sensor & Actuator Center | 7, avenue du Colonel Roche | |||
490 Cory Hall | Toulouse 31400 | |||
Berkeley, California 94720 | France | |||
USA | ||||
Email: nicola.accettura@eecs.berkeley.edu | Phone: +33 5 61 33 69 76 | |||
Email: nicola.accettura@laas.fr | ||||
End of changes. 59 change blocks. | ||||
175 lines changed or deleted | 263 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |