idnits 2.17.1 draft-ietf-6tisch-6top-interface-04.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: If the TrackID is set to (0,0), the cell can be used by the best-effort QoS configuration or as a Shared cell. If the TrackID is not set to (0,0), i.e., the cell belongs to a specific track, the cell MUST not be set as Shared cell. -- The document date (July 6, 2015) is 3211 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Missing Reference: 'IEEE802154e' is mentioned on line 1508, but not defined == Missing Reference: 'IEEE802154' is mentioned on line 1514, but not defined == Missing Reference: 'OpenWSN' is mentioned on line 1520, but not defined == Unused Reference: 'I-D.ietf-6tisch-terminology' is defined on line 1480, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-6tisch-minimal' is defined on line 1486, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-6tisch-coap' is defined on line 1496, but no explicit reference was found in the text == Outdated reference: A later version (-30) exists of draft-ietf-6tisch-architecture-08 == Outdated reference: A later version (-10) exists of draft-ietf-6tisch-terminology-04 == Outdated reference: A later version (-21) exists of draft-ietf-6tisch-minimal-09 == Outdated reference: A later version (-04) exists of draft-wang-6tisch-6top-sublayer-01 == Outdated reference: A later version (-05) exists of draft-richardson-6tisch--security-6top-04 Summary: 2 errors (**), 0 flaws (~~), 13 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 6TiSCH Q. Wang, Ed. 3 Internet-Draft Univ. of Sci. and Tech. Beijing 4 Intended status: Informational X. Vilajosana 5 Expires: January 7, 2016 Universitat Oberta de Catalunya 6 July 6, 2015 8 6TiSCH Operation Sublayer (6top) Interface 9 draft-ietf-6tisch-6top-interface-04 11 Abstract 13 This document defines a generic data model for the 6TiSCH Operation 14 Sublayer (6top), using the YANG data modeling language. This data 15 model can be used for network management solutions defined by the 16 6TiSCH working group. 18 Status of This Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at http://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on January 7, 2016. 35 Copyright Notice 37 Copyright (c) 2015 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (http://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. Code Components extracted from this document must 46 include Simplified BSD License text as described in Section 4.e of 47 the Trust Legal Provisions and are provided without warranty as 48 described in the Simplified BSD License. 50 Table of Contents 52 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 53 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 54 3. 6TiSCH Operation Sublayer (6top) Overview . . . . . . . . . . 3 55 3.1. Cell Model . . . . . . . . . . . . . . . . . . . . . . . 4 56 3.1.1. hard cells . . . . . . . . . . . . . . . . . . . . . 5 57 3.1.2. soft cells . . . . . . . . . . . . . . . . . . . . . 6 58 3.2. Data Transfer Model . . . . . . . . . . . . . . . . . . . 6 59 4. Generic Data Model . . . . . . . . . . . . . . . . . . . . . 8 60 4.1. YANG model of the 6top MIB . . . . . . . . . . . . . . . 8 61 4.2. Yang Model for the Security aspects of 6top . . . . . . . 32 62 5. References . . . . . . . . . . . . . . . . . . . . . . . . . 32 63 5.1. Normative References . . . . . . . . . . . . . . . . . . 32 64 5.2. Informative References . . . . . . . . . . . . . . . . . 32 65 5.3. External Informative References . . . . . . . . . . . . . 33 66 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 68 1. Introduction 70 This document defines a generic data model for the 6TiSCH Operation 71 Sublayer (6top), using the YANG data modeling language defined in 72 [RFC6020]. This data model can be used for future network management 73 solutions defined by the 6TiSCH working group. This data model gives 74 access to metrics (e.g. cell state), TSCH configuration and control 75 procedures, and support for the different scheduling mechanisms 76 described in [I-D.ietf-6tisch-architecture]. The 6top sublayer 77 addresses the set of management information and functionalities 78 described in [I-D.ietf-6tisch-tsch]. 80 For example, network formation in a TSCH network is handled by the 81 use of Enhanced Beacons (EB). EBs include information for joining 82 nodes to be able to synchronize and set up an initial network 83 topology. However, [IEEE802154e] does not specify how the period of 84 EBs is configured, nor the rules for a node to select a particular 85 node to join. 6top offers a set of commands so control mechanisms 86 can be introduced on top of TSCH to configure nodes to join a 87 specific node and obtain a unique 16-bit identifier from the network. 88 Once a network is formed, 6top maintains the network's health, 89 allowing for nodes to stay synchronized. It supplies mechanisms to 90 manage each node's time source neighbor and configure the EB 91 interval. Network layers running on top of 6top take advantage of 92 the TSCH MAC layer information so routing metrics, topological 93 information, energy consumption and latency requirements can be 94 adjusted to TSCH, and adapted to application requirements. 96 TSCH requires a mechanism to manage its schedule; 6top provides a set 97 of commands for upper layers to set up specific schedules, either 98 explicitly by detailing specific cell information, or by allowing 99 6top to establish a schedule given a bandwidth or latency 100 requirement. 6top is designed to enable decentralized, centralized or 101 hybrid scheduling solutions. 6top enables internal TSCH queuing 102 configuration, size of buffers, packet priorities, transmission 103 failure behavior, and defines mechanisms to encrypt and authenticate 104 MAC slotframes. 106 As described in [morell04label], due to the slotted nature of a TSCH 107 network, it is possible to use a label switched architecture on top 108 of TSCH cells. As a cell belongs to a specific track, a label header 109 is not needed at each packet; the input cell (or bundle) and the 110 output cell (or bundle) uniquely identify the data flow. The 6top 111 sublayer provides operations to manage the cell mappings. 113 2. Requirements Language 115 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 116 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 117 document are to be interpreted as described in RFC 2119 [RFC2119]. 119 3. 6TiSCH Operation Sublayer (6top) Overview 121 6top is a sublayer which is the next-higher layer for TSCH 122 (Figure 1), as detailed in [I-D.ietf-6tisch-architecture]. 6top 123 offers both management and data interfaces to an upper layer, and 124 includes monitoring and statistics collection, both of which are 125 configurable through its management interface. The detail of 6top- 126 sublayer is described in [I-D.wang-6tisch-6top-sublayer] 127 Protocol Stack 129 +-----------------------------------+ 130 | PCEP | CoAP | | 6LoWPAN | | 131 | PCC | DTLS | PANA | ND |RPL | 132 +------------------------------------------+ 133 | TCP | UDP | ICMP | RSVP | 134 +------------------------------------------+ 135 | IPv6 | 136 +------------------------------------------+ 137 | 6LoWPAN HC | 138 +------------------------------------------+ 139 | 6top | 140 +------------------------------------------+ 141 | IEEE802.15.4e TSCH | 142 +------------------------------------------+ 143 | IEEE802.15.4 | 144 +------------------------------------------+ 146 Figure 1 148 6top distinguishes between hard cells and soft cells. It therefore 149 requires an extra flag to all cells in the TSCH schedule, as detailed 150 in Section 3.1. 152 When a higher layer gives 6top a 6LoWPAN packet for transmission, 153 6top maps it to the appropriate outgoing priority-based queue, as 154 detailed in Section 3.2. 156 Section 4 contains a generic data model for the 6top sublayer, 157 described in the YANG data modeling language. 159 3.1. Cell Model 161 [IEEE802154e] defines a set of options attached to each cell. A cell 162 can be a Transmit cell, a Receive cell, a Shared cell or a 163 Timekeeping cell. These options are not exclusive, as a cell can be 164 qualified with more than one of them. The MLME-SET-LINK.request 165 command defined in [IEEE802154e] uses a linkOptions bitmap to specify 166 the options of a cell. Acceptable values are: 168 b0 = Transmit 170 b1 = Receive 172 b2 = Shared 174 b3 = Timekeeping 175 b4-b7 = Reserved 177 Only Transmit cells can also be marked as Shared cells. When the 178 shared bit is set, a back-off procedure is applied to handle 179 collisions. Shared behavior does not apply to Receive cells. 181 6top allows an upper layer to schedule a cell at a specific 182 slotOffset and channelOffset, in a specific slotframe. 184 In addition, 6top allows an upper layer to schedule a certain amount 185 of bandwidth to a neighbor, without having to specify the exact 186 slotOffset(s) and channelOffset(s). Once bandwidth is reserved, 6top 187 is in charge of ensuring that this requirement is continuously 188 satisfied. 6top dynamically reallocates cells if needed, and over- 189 provisions if required. 191 6top allows an upper layer to associate a cell with a specific track 192 by using a TrackID. A TrackID is a tuple 193 (TrackOwnerAddr,InstanceID), where TrackOwnerAddr is the address of 194 the node which initializes the process of creating the track, i.e., 195 the owner of the track; and InstanceID is an instance identifier 196 given by the owner of the track. InstanceID comes from upper layer; 197 InstanceID could for example be the local instance ID defined in RPL. 199 If the TrackID is set to (0,0), the cell can be used by the best- 200 effort QoS configuration or as a Shared cell. If the TrackID is not 201 set to (0,0), i.e., the cell belongs to a specific track, the cell 202 MUST not be set as Shared cell. 204 6top allows an upper layer to ask a node to manage a portion of a 205 slotframe, which is named as chunk. Chunks can be delegated 206 explicitly by the PCE to a node, or claimed automatically by any node 207 that participates to the distributed cell scheduling process. The 208 resource in a chunk can be appropriated by the node, i.e. the owner 209 of the chunk. 211 Given this mechanism, 6top defines hard cells (which have been 212 requested specifically) and soft cells (which can be reallocated 213 dynamically). The hard/soft flag is introduced by the 6top sublayer 214 named as CellType, 0: soft cell, 1: hard cell. This option is 215 mandatory; all cells are either hard or soft. 217 3.1.1. hard cells 219 A hard cell is a cell that cannot be dynamically reallocated by 6top. 220 The CellType MUST be set to 1. The cell is installed by 6top given 221 specific slotframe ID, slotOffset, and channelOffset. 223 3.1.2. soft cells 225 A soft cell is a cell that can be reallocated by 6top dynamically. 226 The CellType MUST be set to 0. This cell is installed by 6top given 227 a specific bandwidth requirement. Soft cells are installed through 228 the soft cell negotiation procedure described in 229 [I-D.wang-6tisch-6top-sublayer]. 231 3.2. Data Transfer Model 233 Once a TSCH schedule is established, 6top is responsible for feeding 234 the data from the upper layer into TSCH. This section describes how 235 6top shapes data from the upper layer (e.g., RPL, 6LoWPAN), and feeds 236 it to TSCH. Since 6top is a sublayer between TSCH and 6LoWPAN, the 237 properties associated with a packet/fragment from the upper layer 238 includes the next hop neighbor (DestAddr) and expected sending 239 priority of the packet (Priority), and/or TrackID(s). The output to 240 TSCH is the fragment corresponding to the next active cell in the 241 TSCH schedule. 243 6top Data Transfer Model 245 | 246 | (DestAddr, Priority, Fragment) 247 | 248 +---------------------------------------+ 249 | I-MUX | 250 +---------------------------------------+ 251 | | | | .... | 252 | | | | | 253 +---+ +---+ +---+ +---+ +---+ 254 | | | | | | | | | | 255 |Q1 | |Q2 | |Q3 | |Q4 | |Qn | 256 | | | | | | | | | | 257 +---+ +---+ +---+ +---+ +---+ 258 | | | | | 259 | | | | | 260 +---------------------------------------+ 261 | MUX | 262 +---------------------------------------+ 263 | 264 | 265 +---+ 266 |PDU| 267 +---+ 268 | 269 | TSCH MAC-payload 270 | 272 Figure 2 274 In Figure 2, Qi represents a queue, which is either broadcast or 275 unicast, and has an assigned priority. The number of queues is 276 configurable. The relationship between queues and tracks is 277 configurable. For example, for a given queue, only one specific 278 track can be used, all of the tracks can be used, or a subset of the 279 tracks can be used. 281 When 6top receives a packet to transmit, the I-MUX module selects a 282 queue in which to insert it. If the packet's destination address is 283 a unicast (resp. broadcast) address, it will be inserted into a 284 unicast (resp. broadcast) queue. 286 The MUX module is invoked at each scheduled transmit cell by TSCH. 287 When invoked, the MUX module goes through the queues, looking for the 288 best matching frame to send. If it finds a frame, it hands it over 289 to TSCH for transmission. If the next active cell is a broadcast 290 cell, it selects a fragment only from broadcast queues. 292 How the MUX module selects the best frame is configurable. The 293 following rules are a typical example: 295 The frame's layer 2 destination address MUST match the neighbor 296 address associated with the transmit cell. 298 If the transmit cell is associated with a specific track, the 299 frames in the queue corresponding to the TrackID have the 300 highest priority. 302 If the transmit cell is not associated with a specific track, 303 i.e., TrackID=(0,0), frames from a queue with a higher priority 304 MUST be sent before frames from a queue with a lower priority. 306 Further rules can be configured to satisfy specific QoS requirements. 308 4. Generic Data Model 310 This section presents the generic data model of the 6top sublayer, 311 using the YANG data modeling langage. This data model can be used 312 for future network management solutions defined by the 6TiSCH working 313 group. The data model consists of the MIB (management information 314 base) defined in 6top, and part of the PIB (personal area network 315 information base) defined in [IEEE802154e] and [IEEE802154]. 317 4.1. YANG model of the 6top MIB 319 module ietf-6top { 321 namespace 322 "urn:ietf:params:xml:ns:yang:ietf-6top"; 323 prefix 324 "ietf"; 326 contact 327 "WG Web: 328 WG List: 330 WG Chair: Pascal Thubert 331 333 WG Chair: Thomas Watteyne 334 336 Editor: Qin Wang 337 "; 339 description 340 "Data model for the 6top sublayer"; 341 organization 342 "IETF 6TiSCH Working Group"; 343 revision 2015-06-16 { 344 description 345 "v4 revision."; 346 reference 347 "draft-ietf-6tisch-6top-interface"; 348 } 350 typedef nodeaddresstype { 351 type uint64; 352 description 353 "The type to store a node's address. It can be a 64-bit EUI; 354 or the short address defined by 6top, constrained by TSCH 355 macNodeAddress size, 2-octets. If using TSCH as MAC, the 356 higher 6 octets should be filled with 0, and lowest 2-octets 357 is neighbor short address"; 358 } 359 typedef asntype { 360 type string { 361 length "0..5"; 362 } 363 description 364 "The type to store ASN. String of 5 bytes"; 365 } 367 list Version { 368 key "major minor"; 369 description 370 "Provides a unique identification for the set of resources 371 defined in this draft. Provides a major and minor version 372 number that may be accessible independently"; 374 leaf major { 375 type uint8; 376 description 377 "major revision number"; 378 } 379 leaf minor { 380 type uint8; 381 description 382 "minor revision number"; 383 } 384 } 385 list SlotframeList { 386 key "SlotframeID"; 387 min-elements 1; 388 description 389 "List of all of the slotframes used by the node."; 391 leaf SlotframeID { 392 type uint8; 393 mandatory true; 394 description 395 "Equal to SlotframeHandle defined in TSCH"; 396 reference 397 "IEEE802154e"; 398 } 399 leaf NumOfSlots { 400 mandatory true; 401 type uint16 { 402 range "1..max"; 403 } 404 description 405 "indicates how many timeslots in the slotframe"; 406 } 407 } 409 list CellList { 410 key "CellID"; 411 min-elements 1; 412 unique "SlotframeID SlotOffset ChannelOffset"; 413 description 414 "List of scheduled cells of a node with all of its neighbors, 415 in all of its slotframes."; 417 leaf CellID { 418 type uint16; 419 description 420 "Equal to Linkhandle in the linkTable of TSCH"; 421 reference 422 "IEEE802154e"; 423 } 424 leaf SlotframeID { 425 type leafref { 426 path "/SlotframeList/SlotframeID"; 427 } 428 description 429 "SlotframeID, one in SlotframeList, indicates the slotframe 430 the cell belongs to."; 432 reference 433 "IEEE802154e"; 434 } 435 leaf SlotOffset { 436 type uint16; 437 description 438 "Defined in IEEE802154e."; 439 reference 440 "IEEE802154e"; 441 } 442 leaf ChannelOffset { 443 type uint16; 444 description 445 "Defined in IEEE802154e. Value range is 0..15"; 446 reference 447 "IEEE802154e"; 448 } 449 leaf LinkOption { 450 type bits { 451 bit Transmit { 452 position 0; 453 } 454 bit Receive { 455 position 1; 456 } 457 bit Share { 458 position 2; 459 } 460 bit Timekeeping { 461 position 3; 462 } 463 } 464 description 465 "Defined in IEEE802154e."; 466 reference 467 "IEEE802154e"; 468 } 469 leaf LinkType { 470 type enumeration { 471 enum NORMAL; 472 enum ADVERTISING; 473 } 474 description 475 "Defined in IEEE802154"; 476 reference 477 "IEEE802154"; 478 } 479 leaf CellType { 480 type enumeration { 481 enum SOFT; 482 enum HARD; 483 } 484 description 485 "Defined in 6top"; 486 } 487 leaf NodeAddress { 488 type nodeaddresstype; 489 description 490 "specify the target node address."; 491 } 492 leaf TrackID { 493 type leafref { 494 path "/TrackList/TrackId"; 495 } 496 description 497 "A TrackID is one in the TrackList, pointing to a tuple 498 (TrackOwnerAddr,InstanceID) , where TrackOwnerAddr is the 499 address of the node which initializes the process of 500 creating the track, i.e., the owner of the track; and 501 InstanceID is an instance identifier given by the owner of 502 the track."; 503 } 504 container Statistic { 505 description 506 "The Statistic container"; 507 leaf NumOfStatistic { 508 mandatory true; 509 type uint8; 510 description 511 "Number of statistics collected on the cell"; 512 } 513 list MeasureList { 514 key "StatisticsMetricsID"; 515 min-elements 1; 516 description 517 "The list of measures."; 518 leaf StatisticsMetricsID{ 519 type leafref { 520 path "/StatisticsMetricsList/StatisticsMetricsID"; 521 } 522 description 523 "An index of StatisticsMetricList, which defines how 524 to collect data and get the statistic value"; 525 } 526 leaf StatisticsValue{ 527 type uint16; 528 config false; 529 description 530 "updated by 6top according to the statistics method 531 specified by StatisticsMetricsID"; 532 } 533 } 534 } 535 } 537 list MonitoringStatusList { 538 key "MonitoringStatusID"; 539 min-elements 1; 540 unique "SlotframeID NodeAddress"; 541 description 542 "List of the monitoring configuration and results per 543 slotframe and neighbor. Basically, it is used for Monitoring 544 Function of 6top to re-allocate softcells or initial the 545 softcell negotiation process to increase/decrease number of 546 softcells. Upper layer can use it also."; 548 leaf MonitoringStatusID { 549 type uint16; 550 description 551 "The monitoring status ID."; 552 } 553 leaf SlotframeID { 554 type leafref { 555 path "/SlotframeList/SlotframeID"; 556 } 557 description 558 "SlotframeID, one in SlotframeList, indicates the slotframe 559 being monitored"; 560 reference 561 "IEEE802154e"; 562 } 563 leaf NodeAddress { 564 type nodeaddresstype; 565 description 566 "The lead node address"; 567 } 568 leaf EnforcePolicy { 569 type enumeration { 570 enum DISABLE; 571 enum BESTEFFORT; 572 enum STRICT; 573 enum OVERPROVISION; 574 } 575 default DISABLE; 576 description 577 "Currently enforced QoS policy. DISABLE-no QoS; 578 BESTEFFORT- best effort policy is used; STRICT- Strict 579 Priority Queueing; OVERPROVISION- cell overprovision"; 580 } 581 leaf AllocatedHard { 582 type uint16; 583 config false; 584 description 585 "Number of hard cells allocated"; 586 } 587 leaf AllocatedSoft { 588 type uint16; 589 config false; 590 description 591 "Number of soft cells allocated"; 592 } 593 leaf OverProvision { 594 type uint16; 595 config false; 596 must "../EnforcePolicy <> DISABLE ./"; 597 description 598 "Overprovisioned cells. 0 if EnforcePolicy is 599 DISABLE"; 600 } 601 leaf QoS { 602 type uint16; 603 config false; 604 description 605 "Current QoS including overprovisioned cells, i.e. the 606 bandwidth obtained including the overprovisioned cells."; 607 } 608 leaf NQoS { 609 type uint16; 610 config false; 611 description 612 "Real QoS without over provisioned cells, i.e. the actual 613 bandwidth without taking into account the overprovisioned 614 cells."; 615 } 616 } 618 list StatisticsMetricsList { 619 key "StatisticsMetricsID"; 620 min-elements 1; 621 unique "SlotframeID SlotOffset ChannelOffset NodeAddress"; 622 description 623 "List of Statistics Metrics used in the node."; 625 leaf StatisticsMetricsID { 626 type uint16; 627 description 628 "The metrics ID for statistics."; 629 } 630 leaf SlotframeID { 631 type leafref { 632 path "/SlotframeList/SlotframeID"; 633 } 634 description 635 "SlotframeID, one in SlotframeList, specifies the 636 slotframe to which the statistics metrics applies to. 637 If empty, applies to all slotframes"; 638 reference 639 "IEEE802154e"; 640 } 641 leaf SlotOffset { 642 type uint16; 643 description 644 "Specific slotOffset to which the statistics metrics applies 645 to. If empty, applies to all timeslots"; 646 reference 647 "IEEE802154e"; 648 } 649 leaf ChannelOffset { 650 type uint16; 651 description 652 "Specific channelOffset to which the statistics metrics 653 applies to. If empty, applies to all channels"; 654 reference 655 "IEEE802154e"; 656 } 658 leaf NodeAddress { 659 type nodeaddresstype; 660 description 661 "If NodeAddress is empty, applies to all neighbor nodes."; 662 } 664 leaf Metrics { 665 type enumeration { 666 enum macCounterOctets; 667 enum macRetryCount; 668 enum macMultipleRetryCount; 669 enum macTXFailCount; 670 enum macTXSuccessCount; 671 enum macFCSErrorCount; 672 enum macSecurityFailure; 673 enum macDuplicateFrameCount; 674 enum macRXSuccessCount; 675 enum macNACKcount; 676 enum PDR; 677 enum ETX; 678 enum RSSI; 679 enum LQI; 680 } 681 description 682 "The metric to be monitored. Include those provided by 683 underlying IEEE 802.15.4e TSCH -- see table 4i (2012). 684 PDR,ETX,RSSI,LQI are maintained by 6top. "; 685 } 686 leaf Window { 687 type uint16; 688 description 689 "measurement period, in Number of the slotframe size"; 690 } 691 leaf Enable { 692 type enumeration { 693 enum DISABLE; 694 enum ENABLE; 695 } 696 default DISABLE; 697 description 698 "indicates the StatisticsMetric is active or not"; 699 } 700 } 702 list EBList { 703 key "EbID"; 704 min-elements 1; 705 description 706 "List of information related with the EBs used by the node"; 708 leaf EbID { 709 type uint8; 710 description 711 "The EB id."; 713 } 714 leaf CellID { 715 type leafref { 716 path "/CellList/CellID"; 717 } 718 description 719 "CellID, one in CellList, indicates the cell used 720 to send EB"; 722 } 723 leaf Peroid { 724 type uint16; 725 description 726 "The EBs period, in seconds, indicates the interval between 727 two EB sendings"; 728 } 729 leaf Expiration { 730 type enumeration { 731 enum NEVERSTOP; 732 enum EXPIRATION; 733 } 734 description 735 "NEVERSTOP- the period of the EB never stops; EXPIRATION- 736 when the Period arrives, the EB will stop."; 737 } 738 leaf Priority { 739 type uint8; 740 description 741 "The joining priority model that will be used for 742 advertisements. Joining priority MAY be for example 743 SAME_AS_PARENT, RANDOM, BEST_PARENT+1 or 744 DAGRANK(rank)."; 745 } 746 } 748 container TimeSource { 749 description 750 "specify the timesource selection policy and some relative 751 statistics. "; 752 leaf policy { 753 type enumeration { 754 enum ALLPARENT; 755 enum BESTCONNECTED; 756 enum LOWESTJOINPRIORITY; 757 } 758 default LOWESTJOINPRIORITY; 759 description 760 "indicates the policy to choose timesource. 761 ALLPARENT- choose from all parents; 762 BESTCONNECTED- choose the best-connected node; 763 LOWESTJOINPRIORITY- choose the node with lowest 764 priority in its EB."; 765 } 766 leaf NodeAddress { 767 type nodeaddresstype; 768 description 769 "Specifies the address of selected time source neighbors."; 771 } 772 leaf MinTimeCorrection { 773 type uint16; 774 config false; 775 description 776 "measured in microsecond"; 777 } 778 leaf MaxTimeCorrection { 779 type uint16; 780 config false; 781 description 782 "measured in microsecond"; 783 } 784 leaf AveTimeCorrection { 785 type uint16; 786 config false; 787 description 788 "measured and computed in microsecond"; 789 } 790 } 792 list NeighborList { 793 key "NodeAddress"; 794 description 795 "statistics per communication link. "; 796 leaf NodeAddress { 797 type nodeaddresstype; 798 description 799 "Specifies the address of the neighbor."; 800 } 801 leaf RSSI { 802 type uint8; 803 config false; 804 description 805 "The received signal strength"; 806 } 807 leaf LinkQuality { 808 type uint8; 809 config false; 810 description 811 "The LQI metric"; 812 } 813 leaf ASN { 814 type asntype; 815 config false; 816 description 817 "The 5 ASN bytes, indicates the most recent 818 timeslot when a packet from the neighbor was received"; 820 } 821 } 823 list QueueList { 824 key "QueueId"; 825 min-elements 1; 826 description 827 "List of Queues, including configuration and statistics."; 828 leaf QueueId { 829 type uint8; 830 description 831 "Queue Identifier"; 832 } 833 leaf TxqLength { 834 type uint8; 835 description 836 "The TX queue length in number of packets"; 837 } 838 leaf RxqLength { 839 type uint8; 840 description 841 "The RX queue length in number of packets"; 842 } 843 leaf NumrTx { 844 type uint8; 845 description 846 "Number of allowed retransmissions."; 847 } 848 leaf Age { 849 type uint16; 850 description 851 "In seconds. Discard packet according to its age 852 on the queue. 0 if no discards are allowed."; 853 } 854 leaf RTXbackoff { 855 type uint8; 856 description 857 "retransmission backoff in number of slotframes. 858 0 if next available timeslot wants to be used."; 859 } 860 leaf StatsWindow { 861 type uint16; 862 description 863 "In second, window of time used to compute stats."; 864 } 865 leaf QueuePriority { 866 type uint8; 867 description 868 "The priority for this queue."; 869 } 870 list TrackIds { 871 key "TrackID"; 872 leaf TrackID{ 873 type leafref { 874 path "/TrackList/TrackId"; 875 } 876 description 877 "The TrackID, one in TrackList, indicates the Track is 878 associated with the Queue."; 879 } 880 description 881 "The track IDs."; 882 } 883 leaf MinLenTXQueue { 884 type uint8; 885 config false; 886 description 887 "Statistics, lowest TX queue length registered 888 in the window."; 889 } 890 leaf MaxLenTXQueue { 891 type uint8; 892 config false; 893 description 894 "Statistics, largest TX queue length registered 895 in the window."; 896 } 897 leaf AvgLenTXQueue { 898 type uint8; 899 config false; 900 description 901 "Statistics, avg TX queue length registered 902 in the window."; 903 } 904 leaf MinLenRXQueue { 905 type uint8; 906 config false; 907 description 908 "Statistics, lowest RX queue length registered 909 in the window."; 910 } 911 leaf MaxLenRXQueue { 912 type uint8; 913 config false; 914 description 915 "Statistics, largest RX queue len registered 916 in the window."; 917 } 918 leaf AvgLenRXQueue { 919 type uint8; 920 config false; 921 description 922 "Statistics, avg RX queue length registered 923 in the window."; 924 } 925 leaf MinRetransmissions { 926 type uint8; 927 config false; 928 description 929 "Statistics, lowest number of retransmissions registered 930 in the window."; 931 } 932 leaf MaxRetransmissions { 933 type uint8; 934 config false; 935 description 936 "Statistics, largest number of retransmissions registered 937 in the window."; 938 } 939 leaf AvgRetransmissions { 940 type uint8; 941 config false; 942 description 943 "Statistics, average number of retransmissions registered 944 in the window."; 945 } 946 leaf MinPacketAge { 947 type uint16; 948 config false; 949 description 950 "Statistics, in seconds, minimum time a packet stayed in 951 the queue during the observed window."; 952 } 953 leaf MaxPacketAge { 954 type uint16; 955 config false; 956 description 957 "Statistics, in seconds, maximum time a packet stayed 958 in the queue during the observed window."; 959 } 960 leaf AvgPacketAge { 961 type uint16; 962 config false; 963 description 964 "Statistics, in seconds, average time a packet stayed in 965 the queue during the observed window."; 966 } 967 leaf MinBackoff { 968 type uint8; 969 config false; 970 description 971 "Statistics, in number of slotframes, minimum Backoff 972 for a packet in the queue during the observed window."; 973 } 974 leaf MaxBackoff { 975 type uint8; 976 config false; 977 description 978 "Statistics, in number of slotframes, maximum Backoff 979 for a packet in the queue during the observed window."; 980 } 981 leaf AvgBackoff { 982 type uint8; 983 config false; 984 description 985 "Statistics, in number of slotframes, average Backoff 986 for a packet in the queue during the observed window."; 987 } 988 } 990 list LabelSwitchList { 991 key "LabelSwitchID"; 992 description 993 "List of Label switch' configuration on the node"; 995 leaf LabelSwitchID { 996 type uint16; 997 description 998 "The label switch ID."; 1000 } 1001 list InputCellIds { 1002 key "CellID"; 1003 leaf CellID{ 1004 type leafref { 1005 path "/CellList/CellID"; 1006 } 1007 description 1008 "The CellID, indicates the Rx cell on which the packet 1009 will come in."; 1010 } 1011 description 1012 "The input cell IDs."; 1013 } 1014 list OutputCellIds { 1015 key "CellID"; 1016 leaf CellID{ 1017 type leafref { 1018 path "/CellList/CellID"; 1019 } 1020 description 1021 "The CellID, indicates the Tx cell on which the received 1022 packet should be sent out."; 1023 } 1024 description 1025 "The output cell IDs."; 1027 } 1028 leaf LoadBalancingPolicy { 1029 type enumeration { 1030 enum ROUNDROBIN; 1031 enum OTHER; 1032 } 1033 description 1034 "The load-balancing policy. 1035 ROUNDROBIN- Round Robin algorithm is used for 1036 forwarding scheduling."; 1037 } 1038 } 1040 list TrackList { 1041 key "TrackId"; 1042 min-elements 1; 1043 unique "TrackOwnerAddr InstanceID"; 1044 description 1045 "List of the tracks through the node. At lease the best effort 1046 track is existing"; 1048 leaf TrackId { 1049 type uint16; 1050 description 1051 "Track Identifier, named locally. It is used to refer to the 1052 tuple (TrackOwnerAddr, InstanceID)."; 1053 } 1054 leaf TrackOwnerAddr { 1055 type uint64; 1056 description 1057 "The address of the node which initializes the process of 1058 creating the track, i.e., the owner of the track;"; 1059 } 1060 leaf InstanceID { 1061 type uint16; 1062 description 1063 "InstanceID is an instance identifier given by 1064 the owner of the track. InstanceID comes from 1065 upper layer; InstanceID could for example be 1066 the local instance ID defined in RPL."; 1067 } 1068 } 1070 list ChunkList { 1071 key "ChunkId"; 1072 description 1073 "List of the chunks assigned to the node."; 1075 leaf ChunkId{ 1076 type uint16; 1077 description 1078 "The identifier of a chunk"; 1079 } 1080 leaf SlotframeId{ 1081 type leafref { 1082 path "/SlotframeList/SlotframeID"; 1083 } 1084 description 1085 "SlotframeID, one in SlotframeList, indicates the 1086 slotframe to which the chunk belongs"; 1087 } 1088 leaf SlotBase { 1089 type uint16; 1090 description 1091 "the base slotOffset of the chunk in the slotframe"; 1092 } 1093 leaf SlotStep { 1094 type uint8; 1095 description 1096 "the slot incremental of the chunk"; 1097 } 1098 leaf ChannelBase { 1099 type uint16; 1100 description 1101 "the base channelOffset of the chunk"; 1102 } 1103 leaf ChannelStep { 1104 type uint8; 1105 description 1106 "the channel incremental of the chunk"; 1107 } 1108 leaf ChunkSize { 1109 type uint8; 1110 description 1111 "the number of cells in the chunk. The chunk is the set 1112 of (slotOffset(i), channelOffset(i)), 1113 i=0..Chunksize-1, 1114 slotOffset(i)= (slotBase + i * slotStep) % slotframeLen, 1115 channelOffset(i) = (channelBase + i * channelStep) % 16"; 1116 } 1117 } 1119 list ChunkCellList { 1120 key "SlotOffset ChannelOffset"; 1121 description 1122 "List of all of the cells assigned to the node via the 1123 assignment of chunks."; 1125 leaf SlotOffset{ 1126 type uint16; 1127 description 1128 "The slotoffset of a cell which belongs to a Chunk"; 1129 } 1130 leaf ChannelOffset{ 1131 type uint16; 1132 description 1133 "The channeloffset of a cell which belongs to a chunk."; 1134 } 1135 leaf ChunkId { 1136 type leafref{ 1137 path "/ChunkList/ChunkId"; 1138 } 1139 description 1140 "Identifier of the chunk the cell belongs to"; 1141 } 1142 leaf CellID{ 1143 type leafref { 1144 path "/CellList/CellID"; 1145 } 1146 description 1147 "Initial value of CellID is 0xFFFF. When the cell is 1148 scheduled, the value of CellID is same as that in 1149 CellList"; 1150 } 1151 leaf ChunkCellStatus { 1152 type enumeration { 1153 enum UNSCHEDULED; 1154 enum SCHEDULED; 1155 } 1156 description 1157 "The Cell status in a Chunk."; 1159 } 1160 } 1162 container TSCHSpecificPIBAttributes { 1163 description 1164 "TSCH specific MAC PIB attributes."; 1165 reference 1166 "table 52b in IEEE802.15.4e-2012."; 1168 leaf macMinBE { 1169 type uint8; 1170 description 1171 "defined in Table 52b of IEEE802.15.4e-2012, 1172 The minimum value of the backoff exponent (BE) in the 1173 CSMA-CA algorithm or the TSCH-CA algorithm. default: 1174 3-CSMA-CA, 1-TSCH-CA"; 1175 } 1176 leaf macMaxBE { 1177 type uint8; 1178 description 1179 "defined in Table 52b of IEEE802.15.4e-2012, 1180 The maximum value of the backoff exponent (BE) in the 1181 CSMA-CA algorithm or the TSCH-CA algorithm. default: 1182 5-CSMA-CA, 7-TSCH-CA"; 1183 } 1184 leaf macDisconnectTime { 1185 type uint16; 1186 description 1187 "defined in Table 52b of IEEE802.15.4e-2012, 1188 Time (in Timeslots) to send out Disassociate frames 1189 before disconnecting, default: 0x00ff"; 1190 } 1191 leaf macJoinPriority { 1192 type uint8; 1193 description 1194 "defined in Table 52b of IEEE802.15.4e-2012, 1195 The lowest join priority from the TSCH Synchronization 1196 IE in an Enhanced beacon, default: 1"; 1197 } 1198 leaf macASN { 1199 type asntype; 1200 description 1201 "defined in Table 52b of IEEE802.15.4e-2012, 1202 The Absolute Slot Number, i.e., the number of slots 1203 that ha elapsed since the start of the network."; 1205 } 1206 leaf macNoHLBuffers { 1207 type enumeration { 1208 enum TRUE; 1209 enum FALSE; 1210 } 1211 description 1212 "defined in Table 52b of IEEE802.15.4e-2012, 1213 If the value is TRUE, the higher layer receiving the 1214 frame payload cannot buffer it, and the device should 1215 acknowledge frames with a NACK; If FALSE, the higher 1216 layer can accept the frame payload. default: FALSE"; 1217 } 1218 } 1220 list TSCHmacTimeslotTemplate { 1221 key "macTimeslotTemplateId"; 1222 min-elements 1; 1223 description 1224 "List of all timeslot templates used in the node."; 1225 reference 1226 "table 52e in IEEE802.15.4e-2012."; 1228 leaf macTimeslotTemplateId { 1229 type uint8; 1230 description 1231 "defined in Table 52e of IEEE802.15.4e-2012. 1232 Identifier of Timeslot Template. default: 0"; 1233 } 1234 leaf macTsCCAOffset { 1235 type uint16; 1236 description 1237 "The time between the beginning of timeslot and start 1238 of CCA operation, in microsecond. default: 1800"; 1239 } 1240 leaf macTsCCA { 1241 type uint16; 1242 description 1243 "Duration of CCA, in microsecond. default: 128"; 1244 } 1245 leaf macTsTxOffset { 1246 type uint16; 1247 description 1248 "The time between the beginning of the timeslot and 1249 the start of frame transmission, in microsecond. 1250 default: 2120"; 1251 } 1252 leaf macTsRxOffset { 1253 type uint16; 1254 description 1255 "Beginning of the timeslot to when the receiver shall 1256 be listening, in microsecond. default: 1120"; 1257 } 1258 leaf macTsRxAckDelay { 1259 type uint16; 1260 description 1261 "End of frame to when the transmitter shall listen for 1262 Acknowledgment, in microsecond. default: 800"; 1263 } 1264 leaf macTsTxAckDelay { 1265 type uint16; 1266 description 1267 "End of frame to start of Acknowledgment, in 1268 microsecond. 1269 default: 1000"; 1270 } 1271 leaf macTsRxWait { 1272 type uint16; 1273 description 1274 "The time to wait for start of frame, in microsecond. 1275 default: 2200"; 1276 } 1277 leaf macTsAckWait { 1278 type uint16; 1279 description 1280 "The minimum time to wait for start of an 1281 Acknowledgment, in microsecond. default: 400"; 1282 } 1283 leaf macTsRxTx { 1284 type uint16; 1285 description 1286 "Transmit to Receive turnaround, in microsecond. 1287 default: 192"; 1288 } 1289 leaf macTsMaxAck { 1290 type uint16; 1291 description 1292 "Transmission time to send Acknowledgment,in 1293 microsecond. default: 2400"; 1294 } 1295 leaf macTsMaxTx { 1296 type uint16; 1297 description 1298 "Transmission time to send the maximum length frame, 1299 in microsecond. default: 4256"; 1300 } 1301 leaf macTsTimeslotLength { 1302 type uint16; 1303 description 1304 "The total length of the timeslot including any unused 1305 time after frame transmission and Acknowledgment, 1306 in microsecond. default: 10000"; 1307 } 1308 } 1310 list TSCHHoppingSequence { 1311 key "macHoppingSequenceID"; 1312 min-elements 1; 1313 description 1314 "List of all channel hopping sequences used in the 1315 nodes"; 1316 reference 1317 "Table 52f of IEEE802.15.4e-2012"; 1319 leaf macHoppingSequenceID { 1320 type uint8; 1321 description 1322 "defined in Table 52f of IEEE802.15.4e-2012. 1323 Each hopping sequence has a unique ID. default: 0"; 1324 } 1325 leaf macChannelPage { 1326 type uint8; 1327 description 1328 "Corresponds to the 5 MSBs (b27, ..., b31) of a row 1329 in phyChannelsSupported. Note this may not correspond 1330 to the current channelPage in use."; 1331 } 1332 leaf macNumberOfChannels { 1333 type uint16; 1334 description 1335 "Number of channels supported by the PHY on this 1336 channelPage."; 1337 } 1338 leaf macPhyConfiguration { 1339 type uint32; 1340 description 1341 "For channel pages 0 to 6, the 27 LSBs(b0, b1, ..., 1342 b26) indicate the status (1 = to be used, 0 = not to 1343 be used) for each of the up to 27 valid channels 1344 available to the PHY. For pages 7 and 8, the 27 LSBs 1345 indicate the configuration of the PHY, and the channel 1346 list is contained in the extendedBitmap."; 1347 } 1348 leaf macExtendedBitmap { 1349 type uint64; 1350 description 1351 "For pages 7 and 8, a bitmap of numberOfChannels bits, 1352 where bk shall indicate the status of channel k for 1353 each of the up to numberOfChannels valid channels 1354 supported by that channel page and phyConfiguration. 1355 Otherwise field is empty."; 1356 } 1357 leaf macHoppingSequenceLength { 1358 type uint16; 1359 description 1360 "The number of channels in the Hopping Sequence. 1361 Does not necessarily equal numberOfChannels."; 1362 } 1363 list macHoppingSequenceList { 1364 key "HoppingChannelID"; 1365 leaf HoppingChannelID { 1366 type uint16; 1367 description 1368 "channels to be hopped over"; 1369 } 1370 description 1371 "The hopping sequence"; 1373 } 1374 leaf macCurrentHop { 1375 type uint16; 1376 config false; 1377 description 1378 "Index of the current position in the hopping sequence 1379 list."; 1380 } 1381 } 1383 container SecurityAttributes{ 1384 description 1385 "The Security Attributes Container."; 1387 leaf-list K1{ 1388 type uint8; 1389 config true; 1390 min-elements 16; 1391 description 1392 "The key is used to authenticate EBs. 1393 The default value of the key is 1394 36 54 69 53 43 48 20 6D 69 6E 69 6D 61 6C 31 35 1395 ,i.e. 6TiSCH minimal15."; 1396 } 1398 leaf EBSecurityLevel{ 1399 type enumeration { 1400 enum NONE; 1401 enum MIC-32; 1402 } 1403 description 1404 "The security level respective to the EB key."; 1405 } 1407 list K2List{ 1408 key "NodeAddress"; 1409 description 1410 "The keys are shared with neighbors, used to authenticate 1411 and/or encrypt DATA, ACKNOWLEDGEMENT, MAC COMMAND frame."; 1413 leaf NodeAddress { 1414 type nodeaddresstype; 1415 description 1416 "Specifies the address of the neighbor(s) sharing the key. 1417 The address could be broadcast/unicast address."; 1418 } 1419 leaf-list K2{ 1420 type uint8; 1421 min-elements 16; 1422 config true; 1423 description 1424 "The key is used as shared key with 1425 the specific neighbor"; 1426 } 1427 leaf SecurityLevel{ 1428 type enumeration { 1429 enum NONE; 1430 enum MIC-32; 1431 enum MIC-64; 1432 enum MIC-128; 1433 enum ENC; 1434 enum ENC-MIC-32; 1435 enum ENC-MIC-64; 1436 enum ENC-MIC-128; 1437 } 1438 description 1439 "The security level respective to 1440 the specific shared key."; 1441 } 1442 } 1443 } 1444 } 1446 4.2. Yang Model for the Security aspects of 6top 1448 The [I-D.ietf-6tisch-architecture] and 1449 [I-D.richardson-6tisch--security-6top] define the attributes needed 1450 to secure network bootstraping and joining and authentication 1451 processes. The SecurityAttributes container in the included yang 1452 model above contains attributes that are exposed by 6top interface to 1453 enable access and configuration to the security mechanisms carried 1454 out by 6top management entity. 1456 5. References 1458 5.1. Normative References 1460 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1461 Requirement Levels", BCP 14, RFC 2119, March 1997. 1463 5.2. Informative References 1465 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 1466 Network Configuration Protocol (NETCONF)", RFC 6020, 1467 October 2010. 1469 [I-D.ietf-6tisch-tsch] 1470 Watteyne, T., Palattella, M., and L. Grieco, "Using 1471 IEEE802.15.4e TSCH in an IoT context: Overview, Problem 1472 Statement and Goals", draft-ietf-6tisch-tsch-06 (work in 1473 progress), March 2015. 1475 [I-D.ietf-6tisch-architecture] 1476 Thubert, P., "An Architecture for IPv6 over the TSCH mode 1477 of IEEE 802.15.4", draft-ietf-6tisch-architecture-08 (work 1478 in progress), May 2015. 1480 [I-D.ietf-6tisch-terminology] 1481 Palattella, M., Thubert, P., Watteyne, T., and Q. Wang, 1482 "Terminology in IPv6 over the TSCH mode of IEEE 1483 802.15.4e", draft-ietf-6tisch-terminology-04 (work in 1484 progress), March 2015. 1486 [I-D.ietf-6tisch-minimal] 1487 Vilajosana, X. and K. Pister, "Minimal 6TiSCH 1488 Configuration", draft-ietf-6tisch-minimal-09 (work in 1489 progress), June 2015. 1491 [I-D.wang-6tisch-6top-sublayer] 1492 Wang, Q., Vilajosana, X., and T. Watteyne, "6TiSCH 1493 Operation Sublayer (6top)", draft-wang-6tisch-6top- 1494 sublayer-01 (work in progress), July 2014. 1496 [I-D.ietf-6tisch-coap] 1497 Sudhaakar, R. and P. Zand, "6TiSCH Resource Management and 1498 Interaction using CoAP", draft-ietf-6tisch-coap-03 (work 1499 in progress), March 2015. 1501 [I-D.richardson-6tisch--security-6top] 1502 Richardson, M., "6tisch secure join using 6top", draft- 1503 richardson-6tisch--security-6top-04 (work in progress), 1504 November 2014. 1506 5.3. External Informative References 1508 [IEEE802154e] 1509 IEEE standard for Information Technology, "IEEE std. 1510 802.15.4e, Part. 15.4: Low-Rate Wireless Personal Area 1511 Networks (LR-WPANs) Amendment 1: MAC sublayer", April 1512 2012. 1514 [IEEE802154] 1515 IEEE standard for Information Technology, "IEEE std. 1516 802.15.4, Part. 15.4: Wireless Medium Access Control (MAC) 1517 and Physical Layer (PHY) Specifications for Low-Rate 1518 Wireless Personal Area Networks", June 2011. 1520 [OpenWSN] Watteyne, T., Vilajosana, X., Kerkez, B., Chraim, F., 1521 Weekly, K., Wang, Q., Glaser, S., and K. Pister, "OpenWSN: 1522 a Standards-Based Low-Power Wireless Development 1523 Environment", Transactions on Emerging Telecommunications 1524 Technologies , August 2012. 1526 [morell04label] 1527 Morell, A., Vilajosana, X., Lopez-Vicario, J., and T. 1528 Watteyne, "Label Switching over IEEE802.15.4e Networks. 1529 Transactions on Emerging Telecommunications Technologies", 1530 June 2013. 1532 Authors' Addresses 1533 Qin Wang (editor) 1534 Univ. of Sci. and Tech. Beijing 1535 30 Xueyuan Road 1536 Beijing, Hebei 100083 1537 China 1539 Phone: +86 (10) 6233 4781 1540 Email: wangqin@ies.ustb.edu.cn 1542 Xavier Vilajosana 1543 Universitat Oberta de Catalunya 1544 156 Rambla Poblenou 1545 Barcelona, Catalonia 08018 1546 Spain 1548 Phone: +34 (646) 633 681 1549 Email: xvilajosana@uoc.edu