| < draft-ietf-6tisch-6top-interface-03.txt | draft-ietf-6tisch-6top-interface-04.txt > | |||
|---|---|---|---|---|
| 6TiSCH Q. Wang, Ed. | 6TiSCH Q. Wang, Ed. | |||
| Internet-Draft Univ. of Sci. and Tech. Beijing | Internet-Draft Univ. of Sci. and Tech. Beijing | |||
| Intended status: Informational X. Vilajosana | Intended status: Informational X. Vilajosana | |||
| Expires: September 10, 2015 Universitat Oberta de Catalunya | Expires: January 7, 2016 Universitat Oberta de Catalunya | |||
| T. Watteyne | July 6, 2015 | |||
| Linear Technology | ||||
| March 9, 2015 | ||||
| 6TiSCH Operation Sublayer (6top) Interface | 6TiSCH Operation Sublayer (6top) Interface | |||
| draft-ietf-6tisch-6top-interface-03 | draft-ietf-6tisch-6top-interface-04 | |||
| Abstract | Abstract | |||
| This document defines a generic data model for the 6TiSCH Operation | This document defines a generic data model for the 6TiSCH Operation | |||
| Sublayer (6top), using the YANG data modeling language. This data | Sublayer (6top), using the YANG data modeling language. This data | |||
| model can be used for future network management solutions defined by | model can be used for network management solutions defined by the | |||
| the 6TiSCH working group. This document also defines a list of | 6TiSCH working group. | |||
| commands for the internal use of the 6top sublayer and/or to be used | ||||
| by implementers as an API guideline or basic specification. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at 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 September 10, 2015. | This Internet-Draft will expire on January 7, 2016. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2015 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 | |||
| skipping to change at page 2, line 15 ¶ | skipping to change at page 2, line 11 ¶ | |||
| 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. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 | 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. 6TiSCH Operation Sublayer (6top) Overview . . . . . . . . . . 3 | 3. 6TiSCH Operation Sublayer (6top) Overview . . . . . . . . . . 3 | |||
| 3.1. Cell Model . . . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. Cell Model . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.1.1. hard cells . . . . . . . . . . . . . . . . . . . . . 6 | 3.1.1. hard cells . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1.2. soft cells . . . . . . . . . . . . . . . . . . . . . 6 | 3.1.2. soft cells . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.2. Data Transfer Model . . . . . . . . . . . . . . . . . . . 6 | 3.2. Data Transfer Model . . . . . . . . . . . . . . . . . . . 6 | |||
| 4. Generic Data Model . . . . . . . . . . . . . . . . . . . . . 8 | 4. Generic Data Model . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.1. YANG model of the 6top MIB . . . . . . . . . . . . . . . 8 | 4.1. YANG model of the 6top MIB . . . . . . . . . . . . . . . 8 | |||
| 4.2. YANG model of the IEEE802.15.4 PIB . . . . . . . . . . . 27 | 4.2. Yang Model for the Security aspects of 6top . . . . . . . 32 | |||
| 4.3. Yang Model for the Security aspects of 6top . . . . . . . 32 | 5. References . . . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 5. Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 34 | 5.1. Normative References . . . . . . . . . . . . . . . . . . 32 | |||
| 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 37 | 5.2. Informative References . . . . . . . . . . . . . . . . . 32 | |||
| 6.1. Normative References . . . . . . . . . . . . . . . . . . 37 | 5.3. External Informative References . . . . . . . . . . . . . 33 | |||
| 6.2. Informative References . . . . . . . . . . . . . . . . . 37 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
| 6.3. External Informative References . . . . . . . . . . . . . 38 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39 | ||||
| 1. Introduction | 1. Introduction | |||
| This document defines a generic data model for the 6TiSCH Operation | This document defines a generic data model for the 6TiSCH Operation | |||
| Sublayer (6top), using the YANG data modeling language defined in | Sublayer (6top), using the YANG data modeling language defined in | |||
| [RFC6020]. This data model can be used for future network management | [RFC6020]. This data model can be used for future network management | |||
| solutions defined by the 6TiSCH working group. This document also | solutions defined by the 6TiSCH working group. This data model gives | |||
| defines a list commands internal to the 6top sublayer. This data | access to metrics (e.g. cell state), TSCH configuration and control | |||
| model gives access to metrics (e.g. cell state), TSCH configuration | procedures, and support for the different scheduling mechanisms | |||
| and control procedures, and support for the different scheduling | described in [I-D.ietf-6tisch-architecture]. The 6top sublayer | |||
| mechanisms described in [I-D.ietf-6tisch-architecture]. The 6top | addresses the set of management information and functionalities | |||
| sublayer addresses the set of management information and | described in [I-D.ietf-6tisch-tsch]. | |||
| functionalities described in [I-D.ietf-6tisch-tsch]. | ||||
| For example, network formation in a TSCH network is handled by the | For example, network formation in a TSCH network is handled by the | |||
| use of Enhanced Beacons (EB). EBs include information for joining | use of Enhanced Beacons (EB). EBs include information for joining | |||
| nodes to be able to synchronize and set up an initial network | nodes to be able to synchronize and set up an initial network | |||
| topology. However, [IEEE802154e] does not specify how the period of | topology. However, [IEEE802154e] does not specify how the period of | |||
| EBs is configured, nor the rules for a node to select a particular | EBs is configured, nor the rules for a node to select a particular | |||
| node to join. 6top offers a set of commands so control mechanisms can | node to join. 6top offers a set of commands so control mechanisms | |||
| be introduced on top of TSCH to configure nodes to join a specific | can be introduced on top of TSCH to configure nodes to join a | |||
| node and obtain a unique 16-bit identifier from the network. Once a | specific node and obtain a unique 16-bit identifier from the network. | |||
| network is formed, 6top maintains the network's health, allowing for | Once a network is formed, 6top maintains the network's health, | |||
| nodes to stay synchronized. It supplies mechanisms to manage each | allowing for nodes to stay synchronized. It supplies mechanisms to | |||
| node's time source neighbor and configure the EB interval. Network | manage each node's time source neighbor and configure the EB | |||
| layers running on top of 6top take advantage of the TSCH MAC layer | interval. Network layers running on top of 6top take advantage of | |||
| information so routing metrics, topological information, energy | the TSCH MAC layer information so routing metrics, topological | |||
| consumption and latency requirements can be adjusted to TSCH, and | information, energy consumption and latency requirements can be | |||
| adapted to application requirements. | adjusted to TSCH, and adapted to application requirements. | |||
| TSCH requires a mechanism to manage its schedule; 6top provides a set | TSCH requires a mechanism to manage its schedule; 6top provides a set | |||
| of commands for upper layers to set up specific schedules, either | of commands for upper layers to set up specific schedules, either | |||
| explicitly by detailing specific cell information, or by allowing | explicitly by detailing specific cell information, or by allowing | |||
| 6top to establish a schedule given a bandwidth or latency | 6top to establish a schedule given a bandwidth or latency | |||
| requirement. 6top is designed to enable decentralized, centralized or | requirement. 6top is designed to enable decentralized, centralized or | |||
| hybrid scheduling solutions. 6top enables internal TSCH queuing | hybrid scheduling solutions. 6top enables internal TSCH queuing | |||
| configuration, size of buffers, packet priorities, transmission | configuration, size of buffers, packet priorities, transmission | |||
| failure behavior, and defines mechanisms to encrypt and authenticate | failure behavior, and defines mechanisms to encrypt and authenticate | |||
| MAC slotframes. | MAC slotframes. | |||
| skipping to change at page 4, line 36 ¶ | skipping to change at page 4, line 36 ¶ | |||
| requires an extra flag to all cells in the TSCH schedule, as detailed | requires an extra flag to all cells in the TSCH schedule, as detailed | |||
| in Section 3.1. | in Section 3.1. | |||
| When a higher layer gives 6top a 6LoWPAN packet for transmission, | When a higher layer gives 6top a 6LoWPAN packet for transmission, | |||
| 6top maps it to the appropriate outgoing priority-based queue, as | 6top maps it to the appropriate outgoing priority-based queue, as | |||
| detailed in Section 3.2. | detailed in Section 3.2. | |||
| Section 4 contains a generic data model for the 6top sublayer, | Section 4 contains a generic data model for the 6top sublayer, | |||
| described in the YANG data modeling language. | described in the YANG data modeling language. | |||
| The commands of the management and data interfaces are listed in | ||||
| Section 5. This set of commands is designed to support | ||||
| decentralized, centralized and hybrid scheduling solutions. | ||||
| 3.1. Cell Model | 3.1. Cell Model | |||
| [IEEE802154e] defines a set of options attached to each cell. A cell | [IEEE802154e] defines a set of options attached to each cell. A cell | |||
| can be a Transmit cell, a Receive cell, a Shared cell or a | can be a Transmit cell, a Receive cell, a Shared cell or a | |||
| Timekeeping cell. These options are not exclusive, as a cell can be | Timekeeping cell. These options are not exclusive, as a cell can be | |||
| qualified with more than one of them. The MLME-SET-LINK.request | qualified with more than one of them. The MLME-SET-LINK.request | |||
| command defined in [IEEE802154e] uses a linkOptions bitmap to specify | command defined in [IEEE802154e] uses a linkOptions bitmap to specify | |||
| the options of a cell. Acceptable values are: | the options of a cell. Acceptable values are: | |||
| b0 = Transmit | b0 = Transmit | |||
| skipping to change at page 7, line 43 ¶ | skipping to change at page 7, line 43 ¶ | |||
| Figure 2 | Figure 2 | |||
| In Figure 2, Qi represents a queue, which is either broadcast or | In Figure 2, Qi represents a queue, which is either broadcast or | |||
| unicast, and has an assigned priority. The number of queues is | unicast, and has an assigned priority. The number of queues is | |||
| configurable. The relationship between queues and tracks is | configurable. The relationship between queues and tracks is | |||
| configurable. For example, for a given queue, only one specific | configurable. For example, for a given queue, only one specific | |||
| track can be used, all of the tracks can be used, or a subset of the | track can be used, all of the tracks can be used, or a subset of the | |||
| tracks can be used. | tracks can be used. | |||
| When 6top receives a packet to transmit through a Send.data command | When 6top receives a packet to transmit, the I-MUX module selects a | |||
| (Section 5), the I-MUX module selects a queue in which to insert it. | queue in which to insert it. If the packet's destination address is | |||
| If the packet's destination address is a unicast (resp. broadcast) | a unicast (resp. broadcast) address, it will be inserted into a | |||
| address, it will be inserted into a unicast (resp. broadcast) queue. | unicast (resp. broadcast) queue. | |||
| The MUX module is invoked at each scheduled transmit cell by TSCH. | The MUX module is invoked at each scheduled transmit cell by TSCH. | |||
| When invoked, the MUX module goes through the queues, looking for the | When invoked, the MUX module goes through the queues, looking for the | |||
| best matching frame to send. If it finds a frame, it hands it over | best matching frame to send. If it finds a frame, it hands it over | |||
| to TSCH for transmission. If the next active cell is a broadcast | to TSCH for transmission. If the next active cell is a broadcast | |||
| cell, it selects a fragment only from broadcast queues. | cell, it selects a fragment only from broadcast queues. | |||
| How the MUX module selects the best frame is configurable. The | How the MUX module selects the best frame is configurable. The | |||
| following rules are a typical example: | following rules are a typical example: | |||
| skipping to change at page 8, line 32 ¶ | skipping to change at page 8, line 32 ¶ | |||
| This section presents the generic data model of the 6top sublayer, | This section presents the generic data model of the 6top sublayer, | |||
| using the YANG data modeling langage. This data model can be used | using the YANG data modeling langage. This data model can be used | |||
| for future network management solutions defined by the 6TiSCH working | for future network management solutions defined by the 6TiSCH working | |||
| group. The data model consists of the MIB (management information | group. The data model consists of the MIB (management information | |||
| base) defined in 6top, and part of the PIB (personal area network | base) defined in 6top, and part of the PIB (personal area network | |||
| information base) defined in [IEEE802154e] and [IEEE802154]. | information base) defined in [IEEE802154e] and [IEEE802154]. | |||
| 4.1. YANG model of the 6top MIB | 4.1. YANG model of the 6top MIB | |||
| typedef nodeaddresstype { | module ietf-6top { | |||
| type uint64; | ||||
| description | ||||
| "The type to store node address. It can be 64bits EUI address; | ||||
| or the short address defined by 6top, constrained by TSCH | ||||
| macNodeAddress size, 2-octets. If using TSCH as MAC, the | ||||
| higher 6-octets should be filled with 0, and lowest 2-octets | ||||
| is neighbor short address"; | ||||
| } | ||||
| list CellList { | namespace | |||
| key "CellID"; | "urn:ietf:params:xml:ns:yang:ietf-6top"; | |||
| min-elements 1; | prefix | |||
| unique "SlotframeID SlotOffset ChannelOffset"; | "ietf"; | |||
| description | ||||
| "List of scheduled cells of a node with all of its neighbors, | ||||
| in all of its slotframes."; | ||||
| leaf CellID { | contact | |||
| type uint16; | "WG Web: <http://tools.ietf.org/wg/6tisch/> | |||
| description | WG List: <mailto:6tisch@ietf.org> | |||
| "Equal to Linkhandle in the linkTable of TSCH"; | ||||
| reference | ||||
| "IEEE802154e"; | ||||
| } | ||||
| leaf SlotframeID { | ||||
| type leafref { | ||||
| path "/SlotframeList/SlotframeID"; | ||||
| } | ||||
| description | ||||
| "SlotframeID, one in SlotframeList, indicates the slotframe | ||||
| the cell belongs to."; | ||||
| reference | ||||
| "IEEE802154e"; | ||||
| } | ||||
| leaf SlotOffset { | ||||
| type uint16; | ||||
| description | ||||
| "Defined in IEEE802154e."; | ||||
| reference | ||||
| "IEEE802154e"; | ||||
| } | ||||
| leaf ChannelOffset { | ||||
| type uint16; | ||||
| description | ||||
| "Defined in IEEE802154e. Value range is 0..15"; | ||||
| reference | ||||
| "IEEE802154e"; | ||||
| } | ||||
| leaf LinkOption { | ||||
| type bits { | ||||
| bit Transmit { | ||||
| position 0; | ||||
| } | ||||
| bit Receive { | ||||
| position 1; | ||||
| } | ||||
| bit Share { | ||||
| position 2; | ||||
| } | ||||
| bit Timekeeping { | ||||
| position 3; | ||||
| } | ||||
| bit Reserved1 { | ||||
| position 4; | ||||
| } | ||||
| bit Reserved2 { | ||||
| position 5; | ||||
| } | WG Chair: Pascal Thubert | |||
| bit Reserved3 { | <mailto:pthubert@cisco.com> | |||
| position 6; | ||||
| } | ||||
| bit Reserved4 { | ||||
| position 7; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Defined in IEEE802154e."; | ||||
| reference | ||||
| "IEEE802154e"; | ||||
| } | ||||
| leaf LinkType { | ||||
| type enumeration { | ||||
| enum NORMAL; | ||||
| enum ADVERTISING; | ||||
| } | ||||
| description | ||||
| "Defined in IEEE802154"; | ||||
| reference | ||||
| "IEEE802154"; | ||||
| } | ||||
| leaf CellType { | ||||
| type enumeration { | ||||
| enum SOFT; | ||||
| enum HARD; | ||||
| } | ||||
| description | ||||
| "Defined in 6top"; | ||||
| } | ||||
| leaf NodeAddress { | ||||
| type nodeaddresstype; | ||||
| description | ||||
| "specify the target node address."; | ||||
| } | ||||
| leaf TrackID { | ||||
| type leafref { | ||||
| path "/TrackList/TrackId"; | ||||
| } | ||||
| description | ||||
| "A TrackID is one in the TrackList, pointing to a tuple | ||||
| (TrackOwnerAddr,InstanceID) , where TrackOwnerAddr is the | ||||
| address of the node which initializes the process of | ||||
| creating the track, i.e., the owner of the track; and | ||||
| InstanceID is an instance identifier given by the owner of | ||||
| the track."; | ||||
| } | ||||
| container Statistic { | ||||
| leaf NumOfStatistic { | ||||
| mandatory true; | ||||
| type uint8; | ||||
| description | ||||
| "Number of statistics collected on the cell"; | ||||
| } | ||||
| list MeasureList { | ||||
| key "StatisticsMetricsID"; | ||||
| min-elements 1; | ||||
| leaf StatisticsMetricsID{ | WG Chair: Thomas Watteyne | |||
| type leafref { | <mailto:thomas.watteyne@inria.fr> | |||
| path "/StatisticsMetricsList/StatisticsMetricsID"; | ||||
| } | ||||
| description | ||||
| "An index of StatisticsMetricList, which defines how | ||||
| to collect data and get the statistice value"; | ||||
| } | ||||
| leaf StatisticsValue{ | ||||
| type uint16; | ||||
| config false; | ||||
| description | ||||
| "updated by 6top according to the statistics method | ||||
| specified by StatisticsMetricsID"; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| list SlotframeList { | Editor: Qin Wang | |||
| key "SlotframeID"; | <mailto:wangqin@ies.ustb.edu.cn>"; | |||
| min-elements 1; | ||||
| description | ||||
| "List of all of the slotframes used by the node."; | ||||
| leaf SlotframeID { | description | |||
| mandatory true; | "Data model for the 6top sublayer"; | |||
| type uint8; | organization | |||
| description | "IETF 6TiSCH Working Group"; | |||
| "Equal to SlotframeHandle defined in TSCH"; | revision 2015-06-16 { | |||
| reference | description | |||
| "IEEE802154e"; | "v4 revision."; | |||
| } | reference | |||
| leaf NumOfSlots { | "draft-ietf-6tisch-6top-interface"; | |||
| mandatory true; | } | |||
| type uint16 { | ||||
| range "1..max"; | typedef nodeaddresstype { | |||
| } | type uint64; | |||
| description | description | |||
| "indicates how many timeslots in the slotframe"; | "The type to store a node's address. It can be a 64-bit EUI; | |||
| } | or the short address defined by 6top, constrained by TSCH | |||
| macNodeAddress size, 2-octets. If using TSCH as MAC, the | ||||
| higher 6 octets should be filled with 0, and lowest 2-octets | ||||
| is neighbor short address"; | ||||
| } | ||||
| typedef asntype { | ||||
| type string { | ||||
| length "0..5"; | ||||
| } | } | |||
| description | ||||
| "The type to store ASN. String of 5 bytes"; | ||||
| } | ||||
| list Version { | list Version { | |||
| key "Version"; | key "major minor"; | |||
| description | description | |||
| "Provides a unique identification for the set of resources | "Provides a unique identification for the set of resources | |||
| defined in this draft. Provides a major and minor version | defined in this draft. Provides a major and minor version | |||
| number that may be accessible independently"; | number that may be accessible independently"; | |||
| leaf major { | leaf major { | |||
| type uint8; | type uint8; | |||
| } | description | |||
| leaf minor { | "major revision number"; | |||
| type uint8; | } | |||
| } | leaf minor { | |||
| } | type uint8; | |||
| description | ||||
| "minor revision number"; | ||||
| } | ||||
| } | ||||
| list SlotframeList { | ||||
| key "SlotframeID"; | ||||
| min-elements 1; | ||||
| description | ||||
| "List of all of the slotframes used by the node."; | ||||
| list MonitoringStatusList { | leaf SlotframeID { | |||
| key "MonitoringStatusID"; | type uint8; | |||
| min-elements 1; | mandatory true; | |||
| unique "SlotframeID NodeAddress"; | description | |||
| description | "Equal to SlotframeHandle defined in TSCH"; | |||
| "List of the monitoring configuration and results per | reference | |||
| slotframe and neighbor. Basically, it is used for Monitoring | "IEEE802154e"; | |||
| Function of 6top to re-allocate softcells or initial the | } | |||
| softcell negotiation process to increase/decrease number of | leaf NumOfSlots { | |||
| softcells. Upper layer can use it also."; | mandatory true; | |||
| type uint16 { | ||||
| range "1..max"; | ||||
| } | ||||
| description | ||||
| "indicates how many timeslots in the slotframe"; | ||||
| } | ||||
| } | ||||
| leaf MonitoringStatusID { | list CellList { | |||
| type uint16; | key "CellID"; | |||
| } | min-elements 1; | |||
| leaf SlotframeID { | unique "SlotframeID SlotOffset ChannelOffset"; | |||
| type leafref { | description | |||
| path "/SlotframeList/SlotframeID"; | "List of scheduled cells of a node with all of its neighbors, | |||
| } | in all of its slotframes."; | |||
| description | ||||
| "SlotframeID, one in SlotframeList, indicates the slotframe | leaf CellID { | |||
| being monitored"; | type uint16; | |||
| reference | description | |||
| "IEEE802154e"; | "Equal to Linkhandle in the linkTable of TSCH"; | |||
| } | reference | |||
| leaf NodeAddress { | "IEEE802154e"; | |||
| type nodeaddresstype; | } | |||
| } | leaf SlotframeID { | |||
| leaf EnforcePolicy { | type leafref { | |||
| type enumeration { | path "/SlotframeList/SlotframeID"; | |||
| enum DISABLE; | } | |||
| enum BESTEFFORT; | description | |||
| enum STRICT; | "SlotframeID, one in SlotframeList, indicates the slotframe | |||
| enum OVERPROVISION; | the cell belongs to."; | |||
| } | ||||
| default DISABLE; | reference | |||
| description | "IEEE802154e"; | |||
| "Currently enforced QoS policy. DISABLE-no QoS; | } | |||
| BESTEFFORT- best effort policy is used; STRICT- Strict | leaf SlotOffset { | |||
| Priority Queueing; OVERPROVISION- cell overprovision"; | type uint16; | |||
| description | ||||
| "Defined in IEEE802154e."; | ||||
| reference | ||||
| "IEEE802154e"; | ||||
| } | ||||
| leaf ChannelOffset { | ||||
| type uint16; | ||||
| description | ||||
| "Defined in IEEE802154e. Value range is 0..15"; | ||||
| reference | ||||
| "IEEE802154e"; | ||||
| } | ||||
| leaf LinkOption { | ||||
| type bits { | ||||
| bit Transmit { | ||||
| position 0; | ||||
| } | } | |||
| leaf AllocatedHard { | bit Receive { | |||
| type uint16; | position 1; | |||
| config false; | ||||
| description | ||||
| "Number of hard cells allocated"; | ||||
| } | } | |||
| leaf AllocatedSoft { | bit Share { | |||
| type uint16; | position 2; | |||
| config false; | ||||
| description | ||||
| "Number of soft cells allocated"; | ||||
| } | } | |||
| leaf OverProvision { | bit Timekeeping { | |||
| type uint16; | position 3; | |||
| config false; | ||||
| must "../EnforcePolicy < > DISABLE ./"; | ||||
| description | ||||
| "Overprovisioned cells. 0 if EnforcePolicy is | ||||
| DISABLE"; | ||||
| } | } | |||
| leaf QoS { | } | |||
| type uint16; | description | |||
| config false; | "Defined in IEEE802154e."; | |||
| description | reference | |||
| "Current QoS including overprovisioned cells, i.e. the | "IEEE802154e"; | |||
| bandwidth obtained including the overprovisioned cells."; | } | |||
| leaf LinkType { | ||||
| type enumeration { | ||||
| enum NORMAL; | ||||
| enum ADVERTISING; | ||||
| } | ||||
| description | ||||
| "Defined in IEEE802154"; | ||||
| reference | ||||
| "IEEE802154"; | ||||
| } | ||||
| leaf CellType { | ||||
| type enumeration { | ||||
| enum SOFT; | ||||
| enum HARD; | ||||
| } | ||||
| description | ||||
| "Defined in 6top"; | ||||
| } | ||||
| leaf NodeAddress { | ||||
| type nodeaddresstype; | ||||
| description | ||||
| "specify the target node address."; | ||||
| } | ||||
| leaf TrackID { | ||||
| type leafref { | ||||
| path "/TrackList/TrackId"; | ||||
| } | ||||
| description | ||||
| "A TrackID is one in the TrackList, pointing to a tuple | ||||
| (TrackOwnerAddr,InstanceID) , where TrackOwnerAddr is the | ||||
| address of the node which initializes the process of | ||||
| creating the track, i.e., the owner of the track; and | ||||
| InstanceID is an instance identifier given by the owner of | ||||
| the track."; | ||||
| } | ||||
| container Statistic { | ||||
| description | ||||
| "The Statistic container"; | ||||
| leaf NumOfStatistic { | ||||
| mandatory true; | ||||
| type uint8; | ||||
| description | ||||
| "Number of statistics collected on the cell"; | ||||
| } | ||||
| list MeasureList { | ||||
| key "StatisticsMetricsID"; | ||||
| min-elements 1; | ||||
| description | ||||
| "The list of measures."; | ||||
| leaf StatisticsMetricsID{ | ||||
| type leafref { | ||||
| path "/StatisticsMetricsList/StatisticsMetricsID"; | ||||
| } | ||||
| description | ||||
| "An index of StatisticsMetricList, which defines how | ||||
| to collect data and get the statistic value"; | ||||
| } | } | |||
| leaf NQoS { | leaf StatisticsValue{ | |||
| type uint16; | type uint16; | |||
| config false; | config false; | |||
| description | description | |||
| "Real QoS without over provisioned cells, i.e. the actual | "updated by 6top according to the statistics method | |||
| bandwidth without taking into account the overprovisioned | specified by StatisticsMetricsID"; | |||
| cells."; | ||||
| } | } | |||
| } | } | |||
| } | ||||
| } | ||||
| list StatisticsMetricsList { | list MonitoringStatusList { | |||
| key "StatisticsMetricsID"; | key "MonitoringStatusID"; | |||
| min-elements 1; | min-elements 1; | |||
| unique "SlotframeID SlotOffset ChannelOffset NodeAddress"; | unique "SlotframeID NodeAddress"; | |||
| description | description | |||
| "List of Statistics Metrics used in the node."; | "List of the monitoring configuration and results per | |||
| slotframe and neighbor. Basically, it is used for Monitoring | ||||
| Function of 6top to re-allocate softcells or initial the | ||||
| softcell negotiation process to increase/decrease number of | ||||
| softcells. Upper layer can use it also."; | ||||
| leaf StatisticsMetricsID { | leaf MonitoringStatusID { | |||
| type uint16; | type uint16; | |||
| } | description | |||
| leaf SlotframeID { | "The monitoring status ID."; | |||
| type leafref { | } | |||
| path "/SlotframeList/SlotframeID"; | leaf SlotframeID { | |||
| } | type leafref { | |||
| description | path "/SlotframeList/SlotframeID"; | |||
| "SlotframeID, one in SlotframeList, specifies the slotframe to | } | |||
| which the statistics metrics applies to. If empty, applies to | description | |||
| all slotframes"; | "SlotframeID, one in SlotframeList, indicates the slotframe | |||
| reference | being monitored"; | |||
| "IEEE802154e"; | reference | |||
| } | "IEEE802154e"; | |||
| leaf SlotOffset { | } | |||
| type uint16; | leaf NodeAddress { | |||
| type nodeaddresstype; | ||||
| description | description | |||
| "Specific slotOffset to which the statistics metrics applies | "The lead node address"; | |||
| to. If empty, applies to all timeslots"; | } | |||
| reference | leaf EnforcePolicy { | |||
| "IEEE802154e"; | type enumeration { | |||
| enum DISABLE; | ||||
| enum BESTEFFORT; | ||||
| enum STRICT; | ||||
| enum OVERPROVISION; | ||||
| } | ||||
| default DISABLE; | ||||
| description | ||||
| "Currently enforced QoS policy. DISABLE-no QoS; | ||||
| BESTEFFORT- best effort policy is used; STRICT- Strict | ||||
| Priority Queueing; OVERPROVISION- cell overprovision"; | ||||
| } | ||||
| leaf AllocatedHard { | ||||
| type uint16; | ||||
| config false; | ||||
| description | ||||
| "Number of hard cells allocated"; | ||||
| } | ||||
| leaf AllocatedSoft { | ||||
| type uint16; | ||||
| config false; | ||||
| description | ||||
| "Number of soft cells allocated"; | ||||
| } | ||||
| leaf OverProvision { | ||||
| type uint16; | ||||
| config false; | ||||
| must "../EnforcePolicy <> DISABLE ./"; | ||||
| description | ||||
| "Overprovisioned cells. 0 if EnforcePolicy is | ||||
| DISABLE"; | ||||
| } | ||||
| leaf QoS { | ||||
| type uint16; | ||||
| config false; | ||||
| description | ||||
| "Current QoS including overprovisioned cells, i.e. the | ||||
| bandwidth obtained including the overprovisioned cells."; | ||||
| } | ||||
| leaf NQoS { | ||||
| type uint16; | ||||
| config false; | ||||
| description | ||||
| "Real QoS without over provisioned cells, i.e. the actual | ||||
| bandwidth without taking into account the overprovisioned | ||||
| cells."; | ||||
| } | ||||
| } | ||||
| } | list StatisticsMetricsList { | |||
| leaf ChannelOffset { | key "StatisticsMetricsID"; | |||
| type uint16; | min-elements 1; | |||
| description | unique "SlotframeID SlotOffset ChannelOffset NodeAddress"; | |||
| "Specific channelOffset to which the statistics metrics applies | description | |||
| to. If empty, applies to all channels"; | "List of Statistics Metrics used in the node."; | |||
| reference | ||||
| "IEEE802154e"; | ||||
| } | ||||
| leaf NodeAddress { | leaf StatisticsMetricsID { | |||
| type nodeaddresstype; | type uint16; | |||
| description | description | |||
| "If NodeAddress is empty, applies to all neighbor nodes."; | "The metrics ID for statistics."; | |||
| } | } | |||
| leaf SlotframeID { | ||||
| type leafref { | ||||
| path "/SlotframeList/SlotframeID"; | ||||
| } | ||||
| description | ||||
| "SlotframeID, one in SlotframeList, specifies the | ||||
| slotframe to which the statistics metrics applies to. | ||||
| If empty, applies to all slotframes"; | ||||
| reference | ||||
| "IEEE802154e"; | ||||
| } | ||||
| leaf SlotOffset { | ||||
| type uint16; | ||||
| description | ||||
| "Specific slotOffset to which the statistics metrics applies | ||||
| to. If empty, applies to all timeslots"; | ||||
| reference | ||||
| "IEEE802154e"; | ||||
| } | ||||
| leaf ChannelOffset { | ||||
| type uint16; | ||||
| description | ||||
| "Specific channelOffset to which the statistics metrics | ||||
| applies to. If empty, applies to all channels"; | ||||
| reference | ||||
| "IEEE802154e"; | ||||
| } | ||||
| leaf Metrics { | leaf NodeAddress { | |||
| type enumeration { | type nodeaddresstype; | |||
| enum macCounterOctets | description | |||
| enum macRetryCount | "If NodeAddress is empty, applies to all neighbor nodes."; | |||
| enum macMultipleRetryCount | } | |||
| enum macTXFailCount | ||||
| enum macTXSuccessCount | ||||
| enum macFCSErrorCount | ||||
| enum macSecurityFailure | ||||
| enum macDuplicateFrameCount | ||||
| enum macRXSuccessCount | ||||
| enum macNACKcount | ||||
| enum PDR; | ||||
| enum ETX; | ||||
| enum RSSI; | ||||
| enum LQI; | ||||
| } | ||||
| description | ||||
| "The metric to be monitored. Include those provided by underlying | ||||
| IEEE 802.15.4e TSCH -- see table 4i (2012). | ||||
| PDR,ETX,RSSI,LQI are maintained by 6top. "; | ||||
| } | ||||
| leaf Window { | ||||
| type uint16; | ||||
| description | ||||
| "measurement period, in Number of the slotframe size"; | ||||
| } | ||||
| leaf Enable { | ||||
| type enumeration { | ||||
| enum DISABLE; | ||||
| enum ENABLE; | ||||
| } | ||||
| default DISABLE; | ||||
| description | ||||
| "indicates the StatisticsMetric is active or not"; | ||||
| } | ||||
| } | ||||
| list EBList { | ||||
| key "EbID"; | ||||
| min-elements 1; | ||||
| description | ||||
| "List of information related with the EBs used by the node"; | ||||
| leaf EbID { | leaf Metrics { | |||
| type uint8; | type enumeration { | |||
| } | enum macCounterOctets; | |||
| leaf CellID { | enum macRetryCount; | |||
| type leafref { | enum macMultipleRetryCount; | |||
| path "/CellList/CellID"; | enum macTXFailCount; | |||
| } | enum macTXSuccessCount; | |||
| description | enum macFCSErrorCount; | |||
| "CellID, one in CellList, indicates the cell used to send | enum macSecurityFailure; | |||
| EB"; | enum macDuplicateFrameCount; | |||
| } | enum macRXSuccessCount; | |||
| leaf Peroid { | enum macNACKcount; | |||
| type uint16; | enum PDR; | |||
| description | enum ETX; | |||
| "The EBs period, in seconds, indicates the interval between | enum RSSI; | |||
| two EB sendings"; | enum LQI; | |||
| } | } | |||
| leaf Expiration { | description | |||
| type enumeration { | "The metric to be monitored. Include those provided by | |||
| enum NEVERSTOP; | underlying IEEE 802.15.4e TSCH -- see table 4i (2012). | |||
| enum EXPIRATION; | PDR,ETX,RSSI,LQI are maintained by 6top. "; | |||
| } | } | |||
| description | leaf Window { | |||
| "NEVERSTOP- the period of the EB never stops; EXPIRATION- | type uint16; | |||
| when the Period arrives, the EB will stop."; | description | |||
| } | "measurement period, in Number of the slotframe size"; | |||
| leaf Priority { | } | |||
| type uint8; | leaf Enable { | |||
| description | type enumeration { | |||
| "The joining priority model that will be used for | enum DISABLE; | |||
| advertisements. Joining priority MAY be for example | enum ENABLE; | |||
| SAME_AS_PARENT, RANDOM, BEST_PARENT+1 or | } | |||
| DAGRANK(rank)."; | default DISABLE; | |||
| } | description | |||
| } | "indicates the StatisticsMetric is active or not"; | |||
| } | ||||
| } | ||||
| container TimeSource { | list EBList { | |||
| description | key "EbID"; | |||
| "specify the timesource selection policy and some relative | min-elements 1; | |||
| statistics. "; | description | |||
| "List of information related with the EBs used by the node"; | ||||
| leaf policy { | leaf EbID { | |||
| type enumeration { | type uint8; | |||
| enum ALLPARENT; | description | |||
| enum BESTCONNECTED; | "The EB id."; | |||
| enum LOWESTJOINPRIORITY; | ||||
| } | ||||
| default LOWESTJOINPRIORITY; | ||||
| description | ||||
| "indicates the policy to choose timesource. ALLPARENT- choose | ||||
| from all parents; BESTCONNECTED- choose the best-connected | ||||
| node; LOWESTJOINPRIORITY- choose the node with lowest priority | ||||
| in its EB."; | ||||
| } | ||||
| leaf NodeAddress { | } | |||
| type nodeaddresstype; | leaf CellID { | |||
| description | type leafref { | |||
| path "/CellList/CellID"; | ||||
| } | ||||
| description | ||||
| "CellID, one in CellList, indicates the cell used | ||||
| to send EB"; | ||||
| } | ||||
| leaf Peroid { | ||||
| type uint16; | ||||
| description | ||||
| "The EBs period, in seconds, indicates the interval between | ||||
| two EB sendings"; | ||||
| } | ||||
| leaf Expiration { | ||||
| type enumeration { | ||||
| enum NEVERSTOP; | ||||
| enum EXPIRATION; | ||||
| } | ||||
| description | ||||
| "NEVERSTOP- the period of the EB never stops; EXPIRATION- | ||||
| when the Period arrives, the EB will stop."; | ||||
| } | ||||
| leaf Priority { | ||||
| type uint8; | ||||
| description | ||||
| "The joining priority model that will be used for | ||||
| advertisements. Joining priority MAY be for example | ||||
| SAME_AS_PARENT, RANDOM, BEST_PARENT+1 or | ||||
| DAGRANK(rank)."; | ||||
| } | ||||
| } | ||||
| container TimeSource { | ||||
| description | ||||
| "specify the timesource selection policy and some relative | ||||
| statistics. "; | ||||
| leaf policy { | ||||
| type enumeration { | ||||
| enum ALLPARENT; | ||||
| enum BESTCONNECTED; | ||||
| enum LOWESTJOINPRIORITY; | ||||
| } | ||||
| default LOWESTJOINPRIORITY; | ||||
| description | ||||
| "indicates the policy to choose timesource. | ||||
| ALLPARENT- choose from all parents; | ||||
| BESTCONNECTED- choose the best-connected node; | ||||
| LOWESTJOINPRIORITY- choose the node with lowest | ||||
| priority in its EB."; | ||||
| } | ||||
| leaf NodeAddress { | ||||
| type nodeaddresstype; | ||||
| description | ||||
| "Specifies the address of selected time source neighbors."; | "Specifies the address of selected time source neighbors."; | |||
| } | ||||
| leaf MinTimeCorrection { | } | |||
| type uint16; | leaf MinTimeCorrection { | |||
| config false; | type uint16; | |||
| description | config false; | |||
| description | ||||
| "measured in microsecond"; | "measured in microsecond"; | |||
| } | } | |||
| leaf MaxTimeCorrection { | leaf MaxTimeCorrection { | |||
| type uint16; | type uint16; | |||
| config false; | config false; | |||
| description | description | |||
| "measured in microsecond"; | "measured in microsecond"; | |||
| } | } | |||
| leaf AveTimeCorrection { | leaf AveTimeCorrection { | |||
| type uint16; | type uint16; | |||
| config false; | config false; | |||
| description | description | |||
| "measured and computed in microsecond"; | "measured and computed in microsecond"; | |||
| } | ||||
| } | ||||
| typedef asntype { | ||||
| description | ||||
| "The type to store ASN. String of 5 bytes"; | ||||
| type string { | ||||
| length "0..5"; | ||||
| } | ||||
| } | } | |||
| } | ||||
| list NeighborList { | list NeighborList { | |||
| key "NodeAddress"; | key "NodeAddress"; | |||
| description | description | |||
| "statistics per communication link. "; | "statistics per communication link. "; | |||
| leaf NodeAddress { | ||||
| leaf NodeAddress { | type nodeaddresstype; | |||
| type nodeaddresstype; | description | |||
| description | "Specifies the address of the neighbor."; | |||
| "Specifies the address of the neighbor."; | } | |||
| } | leaf RSSI { | |||
| type uint8; | ||||
| leaf RSSI { | config false; | |||
| type uint8; | description | |||
| config false; | "The received signal strength"; | |||
| description | ||||
| "The received signal strength"; | ||||
| } | ||||
| leaf LinkQuality { | ||||
| type uint8; | ||||
| config false; | ||||
| description | ||||
| "The LQI metric"; | ||||
| } | ||||
| leaf ASN { | ||||
| type asntype; | ||||
| config false; | ||||
| description | ||||
| "The 5 ASN bytes, indicates the most recent timeslot when a | ||||
| packet from the neighbor was received"; | ||||
| } | ||||
| } | } | |||
| leaf LinkQuality { | ||||
| type uint8; | ||||
| config false; | ||||
| description | ||||
| "The LQI metric"; | ||||
| } | ||||
| leaf ASN { | ||||
| type asntype; | ||||
| config false; | ||||
| description | ||||
| "The 5 ASN bytes, indicates the most recent | ||||
| timeslot when a packet from the neighbor was received"; | ||||
| list QueueList { | } | |||
| key "QueueId"; | } | |||
| min-elements 1; | ||||
| description | ||||
| "List of Queues, including configuration and statistics."; | ||||
| leaf QueueId { | list QueueList { | |||
| type uint8; | key "QueueId"; | |||
| description | min-elements 1; | |||
| "Queue Identifier"; | description | |||
| } | "List of Queues, including configuration and statistics."; | |||
| leaf TxqLength { | leaf QueueId { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "The TX queue length in number of packets"; | "Queue Identifier"; | |||
| } | } | |||
| leaf RxqLength { | leaf TxqLength { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "The RX queue length in number of packets"; | "The TX queue length in number of packets"; | |||
| } | } | |||
| leaf NumrTx { | leaf RxqLength { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Number of allowed retransmissions."; | "The RX queue length in number of packets"; | |||
| } | } | |||
| leaf Age { | leaf NumrTx { | |||
| type uint16; | type uint8; | |||
| description | description | |||
| "In seconds. Discard packet according to its age | "Number of allowed retransmissions."; | |||
| on the queue. 0 if no discards are allowed."; | } | |||
| } | leaf Age { | |||
| leaf RTXbackoff { | type uint16; | |||
| type uint8; | description | |||
| description | "In seconds. Discard packet according to its age | |||
| "retransmission backoff in number of slotframes. | on the queue. 0 if no discards are allowed."; | |||
| 0 if next available timeslot wants to be used."; | } | |||
| } | leaf RTXbackoff { | |||
| leaf StatsWindow { | type uint8; | |||
| type uint16; | description | |||
| description | "retransmission backoff in number of slotframes. | |||
| "In second, window of time used to compute stats."; | 0 if next available timeslot wants to be used."; | |||
| } | } | |||
| leaf QueuePriority { | leaf StatsWindow { | |||
| type uint8; | type uint16; | |||
| description | description | |||
| "The priority for this queue."; | "In second, window of time used to compute stats."; | |||
| } | } | |||
| list TrackIds { | leaf QueuePriority { | |||
| key "TrackID"; | type uint8; | |||
| leaf TrackID{ | description | |||
| type leafref { | "The priority for this queue."; | |||
| path "/TrackList/TrackId"; | } | |||
| } | list TrackIds { | |||
| description | key "TrackID"; | |||
| "The TrackID, one in TrackList, indicates the Track is | leaf TrackID{ | |||
| associated with the Queue."; | type leafref { | |||
| } | path "/TrackList/TrackId"; | |||
| } | } | |||
| leaf MinLenTXQueue { | description | |||
| type uint8; | "The TrackID, one in TrackList, indicates the Track is | |||
| config false; | associated with the Queue."; | |||
| description | } | |||
| "Statistics, lowest TX queue length registered in the window."; | description | |||
| } | "The track IDs."; | |||
| leaf MaxLenTXQueue { | } | |||
| type uint8; | leaf MinLenTXQueue { | |||
| config false; | type uint8; | |||
| description | config false; | |||
| "Statistics, largest TX queue length registered in the | description | |||
| window."; | "Statistics, lowest TX queue length registered | |||
| } | in the window."; | |||
| leaf AvgLenTXQueue { | } | |||
| type uint8; | leaf MaxLenTXQueue { | |||
| config false; | type uint8; | |||
| description | config false; | |||
| "Statistics, avg TX queue length registered in the window."; | description | |||
| } | "Statistics, largest TX queue length registered | |||
| leaf MinLenRXQueue { | in the window."; | |||
| type uint8; | } | |||
| config false; | leaf AvgLenTXQueue { | |||
| description | type uint8; | |||
| "Statistics, lowest RX queue length registered in the window."; | config false; | |||
| } | description | |||
| leaf MaxLenRXQueue { | "Statistics, avg TX queue length registered | |||
| type uint8; | ||||
| config false; | ||||
| description | ||||
| "Statistics, largest RX queue len registered in the window."; | ||||
| } | ||||
| leaf AvgLenRXQueue { | ||||
| type uint8; | ||||
| config false; | ||||
| description | ||||
| "Statistics, avg RX queue length registered in the window."; | ||||
| } | ||||
| leaf MinRetransmissions { | ||||
| type uint8; | ||||
| config false; | ||||
| description | ||||
| "Statistics, lowest number of retransmissions registered in | ||||
| the window."; | ||||
| } | ||||
| leaf MaxRetransmissions { | ||||
| type uint8; | ||||
| config false; | ||||
| description | ||||
| "Statistics, largest number of retransmissions registered | ||||
| in the window."; | ||||
| } | ||||
| leaf AvgRetransmissions { | ||||
| type uint8; | ||||
| config false; | ||||
| description | ||||
| "Statistics, average number of retransmissions registered | ||||
| in the window."; | in the window."; | |||
| } | } | |||
| leaf MinPacketAge { | leaf MinLenRXQueue { | |||
| type uint16; | type uint8; | |||
| config false; | config false; | |||
| description | description | |||
| "Statistics, in seconds, minimum time a packet stayed in | "Statistics, lowest RX queue length registered | |||
| the queue during the observed window."; | in the window."; | |||
| } | } | |||
| leaf MaxPacketAge { | leaf MaxLenRXQueue { | |||
| type uint16; | type uint8; | |||
| config false; | config false; | |||
| description | description | |||
| "Statistics, in seconds, maximum time a packet stayed | "Statistics, largest RX queue len registered | |||
| in the queue during the observed window."; | in the window."; | |||
| } | } | |||
| leaf AvgPacketAge { | leaf AvgLenRXQueue { | |||
| type uint16; | type uint8; | |||
| config false; | config false; | |||
| description | description | |||
| "Statistics, in seconds, average time a packet stayed in | "Statistics, avg RX queue length registered | |||
| the queue during the observed window."; | in the window."; | |||
| } | } | |||
| leaf MinBackoff { | leaf MinRetransmissions { | |||
| type uint8; | type uint8; | |||
| config false; | config false; | |||
| description | description | |||
| "Statistics, in number of slotframes, minimum Backoff | "Statistics, lowest number of retransmissions registered | |||
| for a packet in the queue during the observed window."; | in the window."; | |||
| } | } | |||
| leaf MaxBackoff { | leaf MaxRetransmissions { | |||
| type uint8; | type uint8; | |||
| config false; | config false; | |||
| description | description | |||
| "Statistics, in number of slotframes, maximum Backoff | "Statistics, largest number of retransmissions registered | |||
| for a packet in the queue during the observed window."; | in the window."; | |||
| } | ||||
| leaf AvgRetransmissions { | ||||
| type uint8; | ||||
| config false; | ||||
| description | ||||
| "Statistics, average number of retransmissions registered | ||||
| in the window."; | ||||
| } | ||||
| leaf MinPacketAge { | ||||
| type uint16; | ||||
| config false; | ||||
| description | ||||
| "Statistics, in seconds, minimum time a packet stayed in | ||||
| the queue during the observed window."; | ||||
| } | ||||
| leaf MaxPacketAge { | ||||
| type uint16; | ||||
| config false; | ||||
| description | ||||
| "Statistics, in seconds, maximum time a packet stayed | ||||
| in the queue during the observed window."; | ||||
| } | ||||
| leaf AvgPacketAge { | ||||
| type uint16; | ||||
| config false; | ||||
| description | ||||
| "Statistics, in seconds, average time a packet stayed in | ||||
| the queue during the observed window."; | ||||
| } | ||||
| leaf MinBackoff { | ||||
| type uint8; | ||||
| config false; | ||||
| description | ||||
| "Statistics, in number of slotframes, minimum Backoff | ||||
| for a packet in the queue during the observed window."; | ||||
| } | ||||
| leaf MaxBackoff { | ||||
| type uint8; | ||||
| config false; | ||||
| description | ||||
| "Statistics, in number of slotframes, maximum Backoff | ||||
| for a packet in the queue during the observed window."; | ||||
| } | ||||
| leaf AvgBackoff { | ||||
| type uint8; | ||||
| config false; | ||||
| description | ||||
| "Statistics, in number of slotframes, average Backoff | ||||
| for a packet in the queue during the observed window."; | ||||
| } | ||||
| } | ||||
| } | list LabelSwitchList { | |||
| leaf AvgBackoff { | key "LabelSwitchID"; | |||
| type uint8; | description | |||
| config false; | "List of Label switch' configuration on the node"; | |||
| description | ||||
| "Statistics, in number of slotframes, average Backoff | ||||
| for a packet in the queue during the observed window."; | ||||
| } | ||||
| } | ||||
| list LabelSwitchList { | ||||
| key "LabelSwitchID"; | ||||
| description | ||||
| "List of Label switch' configuration on the node"; | ||||
| leaf LabelSwitchID { | leaf LabelSwitchID { | |||
| type uint16; | type uint16; | |||
| } | description | |||
| list InputCellIds { | "The label switch ID."; | |||
| key "CellID"; | ||||
| leaf CellID{ | ||||
| type leafref { | ||||
| path "/CellList/CellID"; | ||||
| } | ||||
| description | ||||
| "The CellID, indicates the Rx cell on which the packet will | ||||
| come in."; | ||||
| } | ||||
| } | ||||
| list OutputCellIds { | ||||
| key "CellID"; | ||||
| leaf CellID{ | ||||
| type leafref { | ||||
| path "/CellList/CellID"; | ||||
| } | ||||
| description | ||||
| "The CellID, indicates the Tx cell on which the received | ||||
| packet should be sent out."; | ||||
| } | ||||
| } | ||||
| leaf LoadBalancingPolicy { | ||||
| type enumeration { | ||||
| enum ROUNDROBIN; | ||||
| enum OTHER; | ||||
| } | ||||
| description | ||||
| "The load-balancing policy. ROUNDROBIN- Round robin algorithm | ||||
| is used for forwarding scheduling."; | ||||
| } | ||||
| } | ||||
| list TrackList { | ||||
| key "TrackId"; | ||||
| min-elements 1; | ||||
| unique "TrackOwnerAddr InstanceID"; | ||||
| description | ||||
| "List of the tracks through the node. At lease the best effort | ||||
| track is existing"; | ||||
| leaf TrackId { | } | |||
| type uint16; | list InputCellIds { | |||
| description | key "CellID"; | |||
| "Track Identifier, named locally. It is used to refer to the | leaf CellID{ | |||
| tuple (TrackOwnerAddr, InstanceID)."; | type leafref { | |||
| } | path "/CellList/CellID"; | |||
| leaf TrackOwnerAddr { | } | |||
| type uint64; | ||||
| description | description | |||
| "The address of the node which initializes the process of | "The CellID, indicates the Rx cell on which the packet | |||
| creating the track, i.e., the owner of the track;"; | will come in."; | |||
| } | } | |||
| leaf InstanceID { | description | |||
| type uint16; | "The input cell IDs."; | |||
| } | ||||
| list OutputCellIds { | ||||
| key "CellID"; | ||||
| leaf CellID{ | ||||
| type leafref { | ||||
| path "/CellList/CellID"; | ||||
| } | ||||
| description | description | |||
| "InstanceID is an instance identifier given by the owner of | "The CellID, indicates the Tx cell on which the received | |||
| the track. InstanceID comes from upper layer; InstanceID could | packet should be sent out."; | |||
| for example be the local instance ID defined in RPL."; | } | |||
| } | description | |||
| } | "The output cell IDs."; | |||
| list ChunkList { | ||||
| key "ChunkId"; | ||||
| description | ||||
| "List of the chunks assigned to the node."; | ||||
| leaf ChunkId{ | } | |||
| type uint16; | leaf LoadBalancingPolicy { | |||
| description | type enumeration { | |||
| "The identifier of a chunk"; | enum ROUNDROBIN; | |||
| } | enum OTHER; | |||
| leaf SlotframeId{ | } | |||
| type leafref { | description | |||
| path "/SlotframeList/SlotframeID"; | "The load-balancing policy. | |||
| } | ROUNDROBIN- Round Robin algorithm is used for | |||
| description | forwarding scheduling."; | |||
| "SlotframeID, one in SlotframeList, indicates the | } | |||
| slotframe to which the chunk belongs"; | } | |||
| } | ||||
| leaf SlotBase { | ||||
| type uint16; | ||||
| description | ||||
| "the base slotOffset of the chunk in the slotframe"; | ||||
| } | ||||
| leaf SlotStep { | ||||
| type uint8; | ||||
| description | ||||
| "the slot incremental of the chunk"; | ||||
| } | ||||
| leaf ChannelBase { | ||||
| type uint16; | ||||
| description | ||||
| "the base channelOffset of the chunk"; | ||||
| } | ||||
| leaf ChannelStep { | ||||
| type uint8; | ||||
| description | ||||
| "the channel incremental of the chunk"; | ||||
| } | ||||
| leaf ChunkSize { | ||||
| type uint8; | ||||
| description | ||||
| "the number of cells in the chunk. The chunk is the set | ||||
| of (slotOffset(i), channelOffset(i)), | ||||
| i=0..Chunksize-1, | ||||
| slotOffset(i)= (slotBase + i * slotStep) % slotframeLen, | ||||
| channelOffset(i) = (channelBase + i * channelStep) % 16"; | ||||
| } | ||||
| } | ||||
| list ChunkCellList { | ||||
| key "SlotOffset ChannelOffset"; | ||||
| description | ||||
| "List of all of the cells assigned to the node via the | ||||
| assignment of chunks."; | ||||
| leaf SlotOffset{ | list TrackList { | |||
| type uint16; | key "TrackId"; | |||
| description | min-elements 1; | |||
| "The slotoffset of a cell which belongs to a Chunk"; | unique "TrackOwnerAddr InstanceID"; | |||
| } | description | |||
| leaf ChannelOffset{ | "List of the tracks through the node. At lease the best effort | |||
| type uint16; | track is existing"; | |||
| description | ||||
| "The channeloffset of a cell which belongs to a chunk."; | leaf TrackId { | |||
| } | type uint16; | |||
| leaf ChunkId { | description | |||
| type leafref{ | "Track Identifier, named locally. It is used to refer to the | |||
| path "/ChunkList/ChunkId"; | tuple (TrackOwnerAddr, InstanceID)."; | |||
| } | } | |||
| description | leaf TrackOwnerAddr { | |||
| "Identifier of the chunk the cell belongs to"; | type uint64; | |||
| } | description | |||
| leaf CellID{ | "The address of the node which initializes the process of | |||
| type leafref { | creating the track, i.e., the owner of the track;"; | |||
| path "/CellList/CellID"; | } | |||
| } | leaf InstanceID { | |||
| description | type uint16; | |||
| "Initial value of CellID is 0xFFFF. When the cell is | description | |||
| scheduled, the value of CellID is same as that in | "InstanceID is an instance identifier given by | |||
| CellList"; | the owner of the track. InstanceID comes from | |||
| } | upper layer; InstanceID could for example be | |||
| leaf ChunkCellStatus { | the local instance ID defined in RPL."; | |||
| type enumeration { | } | |||
| enum UNSCHEDULED; | ||||
| enum SCHEDULED; | ||||
| } | ||||
| } | ||||
| } | } | |||
| 4.2. YANG model of the IEEE802.15.4 PIB | list ChunkList { | |||
| key "ChunkId"; | ||||
| description | ||||
| "List of the chunks assigned to the node."; | ||||
| This section describes the YANG model of the part of PIB | leaf ChunkId{ | |||
| ([IEEE802154] and [IEEE802154e]) used by 6top, such as security | type uint16; | |||
| related attributes, TSCH related attributes. This part of data will | description | |||
| be accessed through the MLME-GET and MLME-SET primitive [IEEE802154] | "The identifier of a chunk"; | |||
| directly, instead of using 6top comannds. | } | |||
| leaf SlotframeId{ | ||||
| type leafref { | ||||
| path "/SlotframeList/SlotframeID"; | ||||
| } | ||||
| description | ||||
| "SlotframeID, one in SlotframeList, indicates the | ||||
| slotframe to which the chunk belongs"; | ||||
| } | ||||
| leaf SlotBase { | ||||
| type uint16; | ||||
| description | ||||
| "the base slotOffset of the chunk in the slotframe"; | ||||
| } | ||||
| leaf SlotStep { | ||||
| type uint8; | ||||
| description | ||||
| "the slot incremental of the chunk"; | ||||
| } | ||||
| leaf ChannelBase { | ||||
| type uint16; | ||||
| description | ||||
| "the base channelOffset of the chunk"; | ||||
| } | ||||
| leaf ChannelStep { | ||||
| type uint8; | ||||
| description | ||||
| "the channel incremental of the chunk"; | ||||
| } | ||||
| leaf ChunkSize { | ||||
| type uint8; | ||||
| description | ||||
| "the number of cells in the chunk. The chunk is the set | ||||
| of (slotOffset(i), channelOffset(i)), | ||||
| i=0..Chunksize-1, | ||||
| slotOffset(i)= (slotBase + i * slotStep) % slotframeLen, | ||||
| channelOffset(i) = (channelBase + i * channelStep) % 16"; | ||||
| } | ||||
| } | ||||
| TODO the security related attributes will be added after 6TiSCH WG | list ChunkCellList { | |||
| has consensus on the security scheme of 6top | key "SlotOffset ChannelOffset"; | |||
| description | ||||
| "List of all of the cells assigned to the node via the | ||||
| assignment of chunks."; | ||||
| container TSCHSpecificPIBAttributes { | leaf SlotOffset{ | |||
| description | type uint16; | |||
| "TSCH specific MAC PIB attributes."; | description | |||
| reference | "The slotoffset of a cell which belongs to a Chunk"; | |||
| "table 52b in IEEE802.15.4e-2012."; | } | |||
| leaf ChannelOffset{ | ||||
| type uint16; | ||||
| description | ||||
| "The channeloffset of a cell which belongs to a chunk."; | ||||
| } | ||||
| leaf ChunkId { | ||||
| type leafref{ | ||||
| path "/ChunkList/ChunkId"; | ||||
| } | ||||
| description | ||||
| "Identifier of the chunk the cell belongs to"; | ||||
| } | ||||
| leaf CellID{ | ||||
| type leafref { | ||||
| path "/CellList/CellID"; | ||||
| } | ||||
| description | ||||
| "Initial value of CellID is 0xFFFF. When the cell is | ||||
| scheduled, the value of CellID is same as that in | ||||
| CellList"; | ||||
| } | ||||
| leaf ChunkCellStatus { | ||||
| type enumeration { | ||||
| enum UNSCHEDULED; | ||||
| enum SCHEDULED; | ||||
| } | ||||
| description | ||||
| "The Cell status in a Chunk."; | ||||
| leaf macMinBE { | } | |||
| type uint8; | } | |||
| description | ||||
| "defined in Table 52b of IEEE802.15.4e-2012, | ||||
| The minimum value of the backoff exponent (BE) in the | ||||
| CSMA-CA algorithm or the TSCH-CA algorithm. default: | ||||
| 3-CSMA-CA, 1-TSCH-CA"; | ||||
| } | ||||
| leaf macMaxBE { | ||||
| type uint8; | ||||
| description | ||||
| "defined in Table 52b of IEEE802.15.4e-2012, | ||||
| The maximum value of the backoff exponent (BE) in the | ||||
| CSMA-CA algorithm or the TSCH-CA algorithm. default: | ||||
| 5-CSMA-CA, 7-TSCH-CA"; | ||||
| } | ||||
| leaf macDisconnectTime { | ||||
| type uint16; | ||||
| description | ||||
| "defined in Table 52b of IEEE802.15.4e-2012, | ||||
| Time (in Timeslots) to send out Disassociate frames | ||||
| before disconnecting, default: 0x00ff"; | ||||
| } | ||||
| leaf macJoinPriority { | ||||
| type uint8; | ||||
| description | ||||
| "defined in Table 52b of IEEE802.15.4e-2012, | ||||
| The lowest join priority from the TSCH Synchronization | ||||
| IE in an Enhanced beacon, default: 1"; | ||||
| } | ||||
| leaf macASN { | ||||
| type asntype; | ||||
| description | ||||
| "defined in Table 52b of IEEE802.15.4e-2012, | ||||
| The Absolute Slot Number, i.e., the number of slots | ||||
| that ha elapsed since the start of the network."; | ||||
| } | ||||
| leaf macNoHLBuffers { | ||||
| type enumeration { | ||||
| enum TRUE; | ||||
| enum FALSE; | ||||
| } | ||||
| description | ||||
| "defined in Table 52b of IEEE802.15.4e-2012, | ||||
| If the value is TRUE, the higher layer receiving the | ||||
| frame payload cannot buffer it, and the device should | ||||
| acknowledge frames with a NACK; If FALSE, the higher | ||||
| layer can accept the frame payload. default: FALSE"; | ||||
| } | ||||
| } | ||||
| list TSCHmacTimeslotTemplate { | container TSCHSpecificPIBAttributes { | |||
| key "macTimeslotTemplateId"; | description | |||
| min-elements 1; | "TSCH specific MAC PIB attributes."; | |||
| description | reference | |||
| "List of all timeslot templates used in the node."; | "table 52b in IEEE802.15.4e-2012."; | |||
| reference | ||||
| "table 52e in IEEE802.15.4e-2012."; | ||||
| leaf macTimeslotTemplateId { | leaf macMinBE { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "defined in Table 52e of IEEE802.15.4e-2012. | "defined in Table 52b of IEEE802.15.4e-2012, | |||
| Identifier of Timeslot Template. default: 0"; | The minimum value of the backoff exponent (BE) in the | |||
| } | CSMA-CA algorithm or the TSCH-CA algorithm. default: | |||
| leaf macTsCCAOffset { | 3-CSMA-CA, 1-TSCH-CA"; | |||
| type uint16; | } | |||
| description | leaf macMaxBE { | |||
| "The time between the beginning of timeslot and start | type uint8; | |||
| of CCA operation, in microsecond. default: 1800"; | description | |||
| } | "defined in Table 52b of IEEE802.15.4e-2012, | |||
| leaf macTsCCA { | The maximum value of the backoff exponent (BE) in the | |||
| type uint16; | CSMA-CA algorithm or the TSCH-CA algorithm. default: | |||
| description | 5-CSMA-CA, 7-TSCH-CA"; | |||
| "Duration of CCA, in microsecond. default: 128"; | } | |||
| } | leaf macDisconnectTime { | |||
| leaf macTsTxOffset { | type uint16; | |||
| type uint16; | description | |||
| description | "defined in Table 52b of IEEE802.15.4e-2012, | |||
| "The time between the beginning of the timeslot and | Time (in Timeslots) to send out Disassociate frames | |||
| the start of frame transmission, in microsecond. | before disconnecting, default: 0x00ff"; | |||
| default: 2120"; | } | |||
| } | leaf macJoinPriority { | |||
| leaf macTsRxOffset { | type uint8; | |||
| type uint16; | description | |||
| description | "defined in Table 52b of IEEE802.15.4e-2012, | |||
| "Beginning of the timeslot to when the receiver shall | The lowest join priority from the TSCH Synchronization | |||
| be listening, in microsecond. default: 1120"; | IE in an Enhanced beacon, default: 1"; | |||
| } | } | |||
| leaf macTsRxAckDelay { | leaf macASN { | |||
| type uint16; | type asntype; | |||
| description | description | |||
| "End of frame to when the transmitter shall listen for | "defined in Table 52b of IEEE802.15.4e-2012, | |||
| Acknowledgment, in microsecond. default: 800"; | The Absolute Slot Number, i.e., the number of slots | |||
| } | that ha elapsed since the start of the network."; | |||
| leaf macTsTxAckDelay { | ||||
| type uint16; | } | |||
| description | leaf macNoHLBuffers { | |||
| "End of frame to start of Acknowledgment, in | type enumeration { | |||
| microsecond. | enum TRUE; | |||
| default: 1000"; | enum FALSE; | |||
| } | ||||
| leaf macTsRxWait { | ||||
| type uint16; | ||||
| description | ||||
| "The time to wait for start of frame, in microsecond. | ||||
| default: 2200"; | ||||
| } | ||||
| leaf macTsAckWait { | ||||
| type uint16; | ||||
| description | ||||
| "The minimum time to wait for start of an | ||||
| Acknowledgment, in microsecond. default: 400"; | ||||
| } | ||||
| leaf macTsRxTx { | ||||
| type uint16; | ||||
| description | ||||
| "Transmit to Receive turnaround, in microsecond. | ||||
| default: 192"; | ||||
| } | ||||
| leaf macTsMaxAck { | ||||
| type uint16; | ||||
| description | ||||
| "Transmission time to send Acknowledgment,in | ||||
| microsecond. default: 2400"; | ||||
| } | ||||
| leaf macTsMaxTx { | ||||
| type uint16; | ||||
| description | ||||
| "Transmission time to send the maximum length frame, | ||||
| in microsecond. default: 4256"; | ||||
| } | ||||
| leaf macTsTimeslotLength { | ||||
| type uint16; | ||||
| description | ||||
| "The total length of the timeslot including any unused | ||||
| time after frame transmission and Acknowledgment, | ||||
| in microsecond. default: 10000"; | ||||
| } | ||||
| } | } | |||
| description | ||||
| "defined in Table 52b of IEEE802.15.4e-2012, | ||||
| If the value is TRUE, the higher layer receiving the | ||||
| frame payload cannot buffer it, and the device should | ||||
| acknowledge frames with a NACK; If FALSE, the higher | ||||
| layer can accept the frame payload. default: FALSE"; | ||||
| } | ||||
| } | ||||
| list TSCHHoppingSequence { | list TSCHmacTimeslotTemplate { | |||
| key "macTimeslotTemplateId"; | ||||
| min-elements 1; | ||||
| description | ||||
| "List of all timeslot templates used in the node."; | ||||
| reference | ||||
| "table 52e in IEEE802.15.4e-2012."; | ||||
| leaf macTimeslotTemplateId { | ||||
| type uint8; | ||||
| description | ||||
| "defined in Table 52e of IEEE802.15.4e-2012. | ||||
| Identifier of Timeslot Template. default: 0"; | ||||
| } | ||||
| leaf macTsCCAOffset { | ||||
| type uint16; | ||||
| description | ||||
| "The time between the beginning of timeslot and start | ||||
| of CCA operation, in microsecond. default: 1800"; | ||||
| } | ||||
| leaf macTsCCA { | ||||
| type uint16; | ||||
| description | ||||
| "Duration of CCA, in microsecond. default: 128"; | ||||
| } | ||||
| leaf macTsTxOffset { | ||||
| type uint16; | ||||
| description | ||||
| "The time between the beginning of the timeslot and | ||||
| the start of frame transmission, in microsecond. | ||||
| default: 2120"; | ||||
| } | ||||
| leaf macTsRxOffset { | ||||
| type uint16; | ||||
| description | ||||
| "Beginning of the timeslot to when the receiver shall | ||||
| be listening, in microsecond. default: 1120"; | ||||
| } | ||||
| leaf macTsRxAckDelay { | ||||
| type uint16; | ||||
| description | ||||
| "End of frame to when the transmitter shall listen for | ||||
| Acknowledgment, in microsecond. default: 800"; | ||||
| } | ||||
| leaf macTsTxAckDelay { | ||||
| type uint16; | ||||
| description | ||||
| "End of frame to start of Acknowledgment, in | ||||
| microsecond. | ||||
| default: 1000"; | ||||
| } | ||||
| leaf macTsRxWait { | ||||
| type uint16; | ||||
| description | ||||
| "The time to wait for start of frame, in microsecond. | ||||
| default: 2200"; | ||||
| } | ||||
| leaf macTsAckWait { | ||||
| type uint16; | ||||
| description | ||||
| "The minimum time to wait for start of an | ||||
| Acknowledgment, in microsecond. default: 400"; | ||||
| } | ||||
| leaf macTsRxTx { | ||||
| type uint16; | ||||
| description | ||||
| "Transmit to Receive turnaround, in microsecond. | ||||
| default: 192"; | ||||
| } | ||||
| leaf macTsMaxAck { | ||||
| type uint16; | ||||
| description | ||||
| "Transmission time to send Acknowledgment,in | ||||
| microsecond. default: 2400"; | ||||
| } | ||||
| leaf macTsMaxTx { | ||||
| type uint16; | ||||
| description | ||||
| "Transmission time to send the maximum length frame, | ||||
| in microsecond. default: 4256"; | ||||
| } | ||||
| leaf macTsTimeslotLength { | ||||
| type uint16; | ||||
| description | ||||
| "The total length of the timeslot including any unused | ||||
| time after frame transmission and Acknowledgment, | ||||
| in microsecond. default: 10000"; | ||||
| } | ||||
| } | ||||
| list TSCHHoppingSequence { | ||||
| key "macHoppingSequenceID"; | key "macHoppingSequenceID"; | |||
| min-elements 1; | min-elements 1; | |||
| description | description | |||
| "List of all channel hopping sequences used in the | "List of all channel hopping sequences used in the | |||
| nodes"; | nodes"; | |||
| reference | reference | |||
| "Table 52f of IEEE802.15.4e-2012"; | "Table 52f of IEEE802.15.4e-2012"; | |||
| leaf macHoppingSequenceID { | leaf macHoppingSequenceID { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "defined in Table 52f of IEEE802.15.4e-2012. | "defined in Table 52f of IEEE802.15.4e-2012. | |||
| Each hopping sequence has a unique ID. default: 0"; | Each hopping sequence has a unique ID. default: 0"; | |||
| } | } | |||
| leaf macChannelPage { | leaf macChannelPage { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Corresponds to the 5 MSBs (b27, ..., b31) of a row | "Corresponds to the 5 MSBs (b27, ..., b31) of a row | |||
| in phyChannelsSupported. Note this may not correspond | in phyChannelsSupported. Note this may not correspond | |||
| to the current channelPage in use."; | to the current channelPage in use."; | |||
| } | } | |||
| leaf macNumberOfChannels { | leaf macNumberOfChannels { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Number of channels supported by the PHY on this | "Number of channels supported by the PHY on this | |||
| channelPage."; | channelPage."; | |||
| } | } | |||
| leaf macPhyConfiguration { | leaf macPhyConfiguration { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "For channel pages 0 to 6, the 27 LSBs(b0, b1, ..., | "For channel pages 0 to 6, the 27 LSBs(b0, b1, ..., | |||
| b26) indicate the status (1 = to be used, 0 = not to | b26) indicate the status (1 = to be used, 0 = not to | |||
| be used) for each of the up to 27 valid channels | be used) for each of the up to 27 valid channels | |||
| available to the PHY. For pages 7 and 8, the 27 LSBs | available to the PHY. For pages 7 and 8, the 27 LSBs | |||
| indicate the configuration of the PHY, and the channel | indicate the configuration of the PHY, and the channel | |||
| list is contained in the extendedBitmap."; | list is contained in the extendedBitmap."; | |||
| } | } | |||
| leaf macExtendedBitmap { | leaf macExtendedBitmap { | |||
| type uint64; | type uint64; | |||
| description | description | |||
| "For pages 7 and 8, a bitmap of numberOfChannels bits, | "For pages 7 and 8, a bitmap of numberOfChannels bits, | |||
| where bk shall indicate the status of channel k for | where bk shall indicate the status of channel k for | |||
| each of the up to numberOfChannels valid channels | each of the up to numberOfChannels valid channels | |||
| supported by that channel page and phyConfiguration. | supported by that channel page and phyConfiguration. | |||
| Otherwise field is empty."; | Otherwise field is empty."; | |||
| } | } | |||
| leaf macHoppingSequenceLength { | leaf macHoppingSequenceLength { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "The number of channels in the Hopping Sequence. | "The number of channels in the Hopping Sequence. | |||
| Does not necessarily equal numberOfChannels."; | Does not necessarily equal numberOfChannels."; | |||
| } | } | |||
| list macHoppingSequenceList { | list macHoppingSequenceList { | |||
| key "HoppingChannelID"; | key "HoppingChannelID"; | |||
| leaf HoppingChannelID { | leaf HoppingChannelID { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "channels to be hopped over"; | "channels to be hopped over"; | |||
| } | } | |||
| description | ||||
| "The hopping sequence"; | ||||
| } | } | |||
| leaf macCurrentHop { | leaf macCurrentHop { | |||
| type uint16; | type uint16; | |||
| config false; | config false; | |||
| description | description | |||
| "Index of the current position in the hopping sequence | "Index of the current position in the hopping sequence | |||
| list."; | list."; | |||
| } | } | |||
| } | ||||
| 4.3. Yang Model for the Security aspects of 6top | ||||
| The [I-D.ietf-6tisch-architecture] and | ||||
| [I-D.richardson-6tisch--security-6top] define the attributes needed | ||||
| to secure network bootstraping and joining and authentication | ||||
| processes. The following attributes are exposed by 6top interface to | ||||
| enable access and configuration to the security mechanisms carried | ||||
| out by 6top management entity. | ||||
| container SecurityAttributes{ | ||||
| leaf SecurityMode { | ||||
| type enumeration { | ||||
| enum NO_SECURITY; | ||||
| enum NETWORK_WIDE_MIC; | ||||
| enum NETWORK_WIDE_DHE_PSK; | ||||
| enum NETWORK_WIDE_IKE2_PSK; | ||||
| enum PK_DTLS_ECDSA; | ||||
| enum PK_IKEv2_ECDSA; | ||||
| enum OTHER; | ||||
| } | ||||
| description | ||||
| "The security mode is to be used."; | ||||
| } | ||||
| leaf-list Certificate{ | ||||
| type uint8; | ||||
| min-elements 128; | ||||
| description "A list of bytes for the | ||||
| certificate ECDSA PKIX or PSK"; | ||||
| } | ||||
| leaf DevID { | ||||
| type enumeration { | ||||
| enum IDevID; | ||||
| enum LDevID; | ||||
| } | ||||
| description " indicate the feature of DevID."; | ||||
| } | ||||
| leaf-list PSK{ | ||||
| type uint8; | ||||
| min-elements 128; | ||||
| description "A list of bytes for the PSK while using PSK method"; | ||||
| } | } | |||
| leaf PanID { | container SecurityAttributes{ | |||
| type uint16; | description | |||
| description "2 Bytes the network PANID"; | "The Security Attributes Container."; | |||
| } | ||||
| leaf JoinAssistant { | ||||
| type enumeration { | ||||
| enum TRUE; | ||||
| enum FALSE; | ||||
| } | ||||
| description "a toggle which enables a node to | ||||
| become a join assistant."; | ||||
| } | ||||
| leaf-list ULA{ | leaf-list K1{ | |||
| type uint8; | type uint8; | |||
| min-elements 16; | config true; | |||
| description "A ULA to be announced in the | min-elements 16; | |||
| RA for joining nodes. It is 128bits+prefixlen. | description | |||
| A device with multiple interfaces | "The key is used to authenticate EBs. | |||
| should configure different 64-bit prefixes."; | The default value of the key is | |||
| 36 54 69 53 43 48 20 6D 69 6E 69 6D 61 6C 31 35 | ||||
| ,i.e. 6TiSCH minimal15."; | ||||
| } | ||||
| } | leaf EBSecurityLevel{ | |||
| type enumeration { | ||||
| enum NONE; | ||||
| enum MIC-32; | ||||
| } | ||||
| description | ||||
| "The security level respective to the EB key."; | ||||
| } | ||||
| leaf BeaconWellKnownKey{ | list K2List{ | |||
| type string; | key "NodeAddress"; | |||
| default "6TISCHJOIN"; | description | |||
| description "the well known beacon key"; | "The keys are shared with neighbors, used to authenticate | |||
| } | and/or encrypt DATA, ACKNOWLEDGEMENT, MAC COMMAND frame."; | |||
| leaf-list JCEAddress{ | leaf NodeAddress { | |||
| type uint8; | type nodeaddresstype; | |||
| min-elements 8; | description | |||
| description "the address of the JCE, | "Specifies the address of the neighbor(s) sharing the key. | |||
| for the ACL about | The address could be broadcast/unicast address."; | |||
| who can contact joining nodes."; | } | |||
| leaf-list K2{ | ||||
| type uint8; | ||||
| min-elements 16; | ||||
| config true; | ||||
| description | ||||
| "The key is used as shared key with | ||||
| the specific neighbor"; | ||||
| } | ||||
| leaf SecurityLevel{ | ||||
| type enumeration { | ||||
| enum NONE; | ||||
| enum MIC-32; | ||||
| enum MIC-64; | ||||
| enum MIC-128; | ||||
| enum ENC; | ||||
| enum ENC-MIC-32; | ||||
| enum ENC-MIC-64; | ||||
| enum ENC-MIC-128; | ||||
| } | ||||
| description | ||||
| "The security level respective to | ||||
| the specific shared key."; | ||||
| } | ||||
| } | ||||
| } | } | |||
| } | } | |||
| 5. Commands | ||||
| 6top provides a set of commands as the interface with the higher | ||||
| layer. Most of these commands are related to the management of | ||||
| slotframes, cells and scheduling information. 6top also provides an | ||||
| interface allowing an upper layer to retrieve status information and | ||||
| statistics. The command set aims to facilitate 6top implementation | ||||
| by describing the main operations that higher layers may use to | ||||
| interact with 6top. The listed commands aim at providing semantics | ||||
| to manipulate 6top MIB, IEEE802.15.4 PIB and IEEE802.15.4e PIB | ||||
| programmatically. | ||||
| CREATE.hardcell: Creates one or more hard cells in the schedule. | ||||
| Fails if the cell already exists. A cell is uniquely identified | ||||
| by the tuple (slotframe ID, slotOffset, channelOffset). 6top | ||||
| schedules the cell and marks it as a hard cell, indicating that it | ||||
| cannot reschedule this cell. The return value is CellID and the | ||||
| created cell is also filled in CellList(Section 4.1). | ||||
| CREATE.softcell: To create soft cell(s). 6top is responsible for | ||||
| picking the exact slotOffset and channelOffset in the schedule, | ||||
| and ensure that the target node chooses the same cell and TrackID. | ||||
| 6top marks these cells as soft cell, indicating that it will | ||||
| continuously monitor their performance and reschedule if needed. | ||||
| The return value is CellID, and the created cell is also filled in | ||||
| CellList (Section 4.1). | ||||
| READ.cell: Given a (slotframe ID, slotOffset, channelOffset), | ||||
| retrieves the cell information. A read command can be issued for | ||||
| any cell, hard or soft. 6top gets cell information from CellList | ||||
| (Section 4.1). | ||||
| UPDATE.cell: Update a hard cell, i.e., re-allocate it to a | ||||
| different slotOffset and/or channelOffset. Fails if the cell does | ||||
| not exist. CellList (Section 4.1) will be modified. | ||||
| DELETE.hardcell: To remove a hard cell. This removes the hard | ||||
| cell from the node's schedule, from CellList (Section 4.1). | ||||
| DELETE.softcell: To remove a (number of) soft cell(s). This | ||||
| command leads the pair of nodes figure out the specific cell(s) to | ||||
| be removed. After that, the cell(s) will be removed from the | ||||
| CellLists (Section 4.1) on both sides. | ||||
| REALLOCATE.softcell: To force a re-allocation of a soft cell. The | ||||
| reallocated cell will be installed in a different slotOffset, | ||||
| channelOffset but slotframe and TrackID remain the same. Hard | ||||
| cells MUST NOT be reallocated. This command will result in the | ||||
| modificaition of CellLists (Section 4.1) on both sides. | ||||
| CREATE.slotframe: Creates a new slotframe. Adds a entry to the | ||||
| SlotframeList (Section 4.1). | ||||
| READ.slotframe: Returns the information of a slotframe given its | ||||
| slotframeID from SlotframeList (Section 4.1). | ||||
| UPDATE.slotframe: Change the number of timeslots in a slotframe | ||||
| given its slotframeID in SlotframeList (Section 4.1). | ||||
| DELETE.slotframe: Deletes a slotframe, remove it from | ||||
| SlotframeList (Section 4.1). | ||||
| CONFIGURE.monitoring: Configures the level of QoS the Monitoring | ||||
| process MUST enforce, i.e. config MonitoringStatusList | ||||
| (Section 4.1). | ||||
| READ.monitoring: Reads the current Monitoring status from | ||||
| MonitoringStatusList (Section 4.1). | ||||
| CONFIGURE.statistics: Configures the statistics process in | ||||
| StatisticsMetricsList(Section 4.1). The CONFIGURE.statistics | ||||
| enables flexible configuration and supports empty parameters that | ||||
| will force 6top to conduct statistics on all members of that | ||||
| dimension. For example, if ChannelOffset is empty and metric is | ||||
| set as PDR, then, 6top will conduct the statistics of PDR on all | ||||
| of channels. | ||||
| READ.statistics: Reads a metric for the specified dimension. | ||||
| Information is aggregated according to the parameters from | ||||
| CellList (Section 4.1). | ||||
| RESET.statistics: Resets the gathered statistics in CellList | ||||
| (Section 4.1). | ||||
| CONFIGURE.eb: Configures EBs, i.e. configures EBlist | ||||
| (Section 4.1). | ||||
| READ.eb: Reads the EBs configuration from EBList (Section 4.1). | ||||
| CONFIGURE.timesource: Configures the Time Source Neighbor | ||||
| selection process, i.e. configure TimeSource (Section 4.1). | ||||
| READ.timesource: Retrieves information about the time source | ||||
| neighbors of that node from TimeSource (Section 4.1). | ||||
| CREATE.neighbor: Creates an entry for a neighbor in the neighbor | ||||
| table, i.e. NeighborList (Section 4.1). | ||||
| READ.all.neighbor: Returns the list of neighbors of that node | ||||
| according to NeighborList (Section 4.1). | ||||
| READ.neighbor: Returns the information of a specific neighbor of | ||||
| that node specified by its neighbor address according to | ||||
| NeighborList (Section 4.1). | ||||
| UPDATE.neighbor: Updates the last status for a given | ||||
| TargetNodeAddress in the NeighborList (Section 4.1). | ||||
| DELETE.neighbor: Deletes a neighbor given its address from | ||||
| NeighborList (Section 4.1). | ||||
| CREATE.queue: Creates and Configures a queue in QueueList | ||||
| (Section 4.1). | ||||
| READ.queue: Reads the queue configuration for given QueueId from | ||||
| QueueList (Section 4.1). | ||||
| READ.queue.stats: For a given QueueId, reads the queue statistics | ||||
| information from the QueueList (Section 4.1). | ||||
| UPDATE.queue: For a given QueueId, update its configuration in the | ||||
| QueueList (Section 4.1). | ||||
| DELETE.queue: Deletes a Queue for a given QueueId from the | ||||
| QueueList (Section 4.1). | ||||
| LabelSwitching.map: Maps an input cell or a bundle of input cells | ||||
| to an output cell or a bundle of output cells, i.e. adds a entry | ||||
| to the LabelSwitchList (Section 4.1). | ||||
| LabelSwitching.unmap: Unmap one input cell or a bundle of input | ||||
| cells to an output cell or a bundle of output cells, i.e. modifies | ||||
| the LabelSwitchList (Section 4.1). | ||||
| CREATE.chunk: Creates a chunk which consists of one or more | ||||
| unscheduled cells, i.e. add an entry to the ChunkList | ||||
| (Section 4.1). | ||||
| READ.chunk: Returns the information of a chunk given its ChunkID | ||||
| from ChunkList (Section 4.1). | ||||
| DELETE.chunk: For given ChunkId, removes a chunk from the | ||||
| ChunkList (Section 4.1), which also causes all of the scheduled | ||||
| cells in the chunk to be deleted from the TSCH schedule and | ||||
| CellList (Section 4.1). | ||||
| CREATE.hardcell.fromchunk: Creates one or more hard cells from a | ||||
| chunk. 6top schedules the cell and marks it as a hard cell, | ||||
| indicating that it cannot reschedule this cell. The cell will be | ||||
| added into the CellList (Section 4.1). In addition, 6top will | ||||
| change the attributes corresponding to the cell in the | ||||
| ChunkCellList (Section 4.1), i.e. its CellID is changed to the | ||||
| same CellID in the CellList, and its Status is changed to | ||||
| SCHEDULED. | ||||
| READ.chunkcell: Returns the information of all cells in a chunk | 4.2. Yang Model for the Security aspects of 6top | |||
| given its ChunkID from ChunkCellList (Section 4.1). | ||||
| DELETE.hardcell.fromchunk: To remove a hard cell which comes from | The [I-D.ietf-6tisch-architecture] and | |||
| a chunk. This removes the hard cell from the node's schedule and | [I-D.richardson-6tisch--security-6top] define the attributes needed | |||
| CellList (Section 4.1). In addition, it changes the attributes | to secure network bootstraping and joining and authentication | |||
| corresponding to the cell in the ChunkCellList (Section 4.1), i.e. | processes. The SecurityAttributes container in the included yang | |||
| its CellID is changed back to 0xFFFF, and its Status is changed to | model above contains attributes that are exposed by 6top interface to | |||
| UNSCHEDULED. | enable access and configuration to the security mechanisms carried | |||
| out by 6top management entity. | ||||
| 6. References | 5. References | |||
| 6.1. Normative References | 5.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, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| 6.2. Informative References | 5.2. Informative References | |||
| [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the | [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the | |||
| Network Configuration Protocol (NETCONF)", RFC 6020, | Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| October 2010. | October 2010. | |||
| [I-D.ietf-6tisch-tsch] | [I-D.ietf-6tisch-tsch] | |||
| Watteyne, T., Palattella, M., and L. Grieco, "Using | Watteyne, T., Palattella, M., and L. Grieco, "Using | |||
| IEEE802.15.4e TSCH in an IoT context: Overview, Problem | IEEE802.15.4e TSCH in an IoT context: Overview, Problem | |||
| Statement and Goals", draft-ietf-6tisch-tsch-05 (work in | Statement and Goals", draft-ietf-6tisch-tsch-06 (work in | |||
| progress), January 2015. | progress), March 2015. | |||
| [I-D.ietf-6tisch-architecture] | [I-D.ietf-6tisch-architecture] | |||
| Thubert, P., Watteyne, T., Struik, R., and M. Richardson, | Thubert, P., "An Architecture for IPv6 over the TSCH mode | |||
| "An Architecture for IPv6 over the TSCH mode of IEEE | of IEEE 802.15.4", draft-ietf-6tisch-architecture-08 (work | |||
| 802.15.4e", draft-ietf-6tisch-architecture-06 (work in | in progress), May 2015. | |||
| progress), March 2015. | ||||
| [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-03 (work in | 802.15.4e", draft-ietf-6tisch-terminology-04 (work in | |||
| progress), January 2015. | progress), March 2015. | |||
| [I-D.ietf-6tisch-minimal] | [I-D.ietf-6tisch-minimal] | |||
| Vilajosana, X. and K. Pister, "Minimal 6TiSCH | Vilajosana, X. and K. Pister, "Minimal 6TiSCH | |||
| Configuration", draft-ietf-6tisch-minimal-06 (work in | Configuration", draft-ietf-6tisch-minimal-09 (work in | |||
| progress), March 2015. | progress), June 2015. | |||
| [I-D.wang-6tisch-6top-sublayer] | [I-D.wang-6tisch-6top-sublayer] | |||
| Wang, Q., Vilajosana, X., and T. Watteyne, "6TiSCH | Wang, Q., Vilajosana, X., and T. Watteyne, "6TiSCH | |||
| Operation Sublayer (6top)", draft-wang-6tisch-6top- | Operation Sublayer (6top)", draft-wang-6tisch-6top- | |||
| sublayer-01 (work in progress), July 2014. | sublayer-01 (work in progress), July 2014. | |||
| [I-D.ietf-6tisch-coap] | [I-D.ietf-6tisch-coap] | |||
| Sudhaakar, R. and P. Zand, "6TiSCH Resource Management and | Sudhaakar, R. and P. Zand, "6TiSCH Resource Management and | |||
| Interaction using CoAP", draft-ietf-6tisch-coap-02 (work | Interaction using CoAP", draft-ietf-6tisch-coap-03 (work | |||
| in progress), December 2014. | in progress), March 2015. | |||
| [I-D.richardson-6tisch--security-6top] | [I-D.richardson-6tisch--security-6top] | |||
| Richardson, M., "6tisch secure join using 6top", draft- | Richardson, M., "6tisch secure join using 6top", draft- | |||
| richardson-6tisch--security-6top-04 (work in progress), | richardson-6tisch--security-6top-04 (work in progress), | |||
| November 2014. | November 2014. | |||
| 6.3. External Informative References | 5.3. External Informative References | |||
| [IEEE802154e] | [IEEE802154e] | |||
| IEEE standard for Information Technology, "IEEE std. | IEEE standard for Information Technology, "IEEE std. | |||
| 802.15.4e, Part. 15.4: Low-Rate Wireless Personal Area | 802.15.4e, Part. 15.4: Low-Rate Wireless Personal Area | |||
| Networks (LR-WPANs) Amendment 1: MAC sublayer", April | Networks (LR-WPANs) Amendment 1: MAC sublayer", April | |||
| 2012. | 2012. | |||
| [IEEE802154] | [IEEE802154] | |||
| IEEE standard for Information Technology, "IEEE std. | IEEE standard for Information Technology, "IEEE std. | |||
| 802.15.4, Part. 15.4: Wireless Medium Access Control (MAC) | 802.15.4, Part. 15.4: Wireless Medium Access Control (MAC) | |||
| skipping to change at page 39, line 24 ¶ | skipping to change at page 34, line 4 ¶ | |||
| Environment", Transactions on Emerging Telecommunications | Environment", Transactions on Emerging Telecommunications | |||
| Technologies , August 2012. | Technologies , August 2012. | |||
| [morell04label] | [morell04label] | |||
| Morell, A., Vilajosana, X., Lopez-Vicario, J., and T. | Morell, A., Vilajosana, X., Lopez-Vicario, J., and T. | |||
| Watteyne, "Label Switching over IEEE802.15.4e Networks. | Watteyne, "Label Switching over IEEE802.15.4e Networks. | |||
| Transactions on Emerging Telecommunications Technologies", | Transactions on Emerging Telecommunications Technologies", | |||
| June 2013. | June 2013. | |||
| Authors' Addresses | Authors' Addresses | |||
| Qin Wang (editor) | Qin Wang (editor) | |||
| Univ. of Sci. and Tech. Beijing | Univ. of Sci. and Tech. Beijing | |||
| 30 Xueyuan Road | 30 Xueyuan Road | |||
| Beijing, Hebei 100083 | Beijing, Hebei 100083 | |||
| China | China | |||
| Phone: +86 (10) 6233 4781 | Phone: +86 (10) 6233 4781 | |||
| Email: wangqin@ies.ustb.edu.cn | Email: wangqin@ies.ustb.edu.cn | |||
| Xavier Vilajosana | Xavier Vilajosana | |||
| Universitat Oberta de Catalunya | Universitat Oberta de Catalunya | |||
| 156 Rambla Poblenou | 156 Rambla Poblenou | |||
| Barcelona, Catalonia 08018 | Barcelona, Catalonia 08018 | |||
| Spain | Spain | |||
| Phone: +34 (646) 633 681 | Phone: +34 (646) 633 681 | |||
| Email: xvilajosana@uoc.edu | Email: xvilajosana@uoc.edu | |||
| Thomas Watteyne | ||||
| Linear Technology | ||||
| 30695 Huntwood Avenue | ||||
| Hayward, CA 94544 | ||||
| USA | ||||
| Phone: +1 (510) 400-2978 | ||||
| Email: twatteyne@linear.com | ||||
| End of changes. 95 change blocks. | ||||
| 1240 lines changed or deleted | 1098 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/ | ||||