Mapping 6TSCH to uRes
The current version of uRes is a implementation of part of 6tus. Specifically, corresponding to draft-wang-6tsch-6tus-00, uRes has implemented the Information Elements, Packet Formats defined in Section 2.5; and also implemented Time Sequence of Network Formation, Create Soft Cells, Deleting Soft Cells and Maintaining Soft Cells defined in section 2.6.
In order to become a implementation of 6tus, the following is TODO list:
- Subset of Commands (Xavi) [section 2.4]
- The Time Sequence of Create Hard Cells and Deleting Hard Cells, and related IE and Packet formats, according to draft-wang-6tsch-6tus-01. [section 2.5, 2.6]
- Statistics: ETX, [section 2.7]
- Monitoring [section 2.8]
- Data interface with upper layer [section 2.3]. multiple queue?
Subset of Commands (Xavi) [section 2.4]
The question is whether we want to provide an interface that delegates to current components so the API is seen as a single component. This will provide a cleaner code by emulating delegate functions to the other component methods.
Command Scope
| Command List | Covered by OpenWSN |
---|---|---|
Cell | CREATE.hardcell CREATE.softcell READ.cell UPDATE.cell DELETE.hardcell DELETE.softcell REALLOCATE.softcell | schedule_addSlot() reservation_linkRequest() schedule_getScheduleEntry() schedule_addLinksToSchedule() ?? schedule_removeLinksFromSchedule() schedule_removeLinksFromSchedule() schedule_removeLinksFromSchedule() + schedule_addLinksToSchedule() ?? |
SlotFrame | CREATE.slotframe READ.slotframe UPDATE.slotframe DELETE.slotframe | Required?? Required?? Required?? Required?? |
Monitoring | CONFIGURE.monitoring READ.monitoring.status | Required Required |
Statistics | CONFIGURE.statistics READ.statistics RESET.statistics | Required schedule_getScheduleEntry() + Required Required |
Network Formation | CONFIGURE.eb READ.eb | Required Required |
Time Source Neighbor | CONFIGURE.timesource READ.timesource | Required Required |
Neighbor | CREATE.neighbor READ.all.neighbor READ.neighbor UPDATE.neighbor DELETE.neighbor | (private in neighbors.c) registerNewNeighbor() Required?? neighbors_getNeighbor() Required?? (private in neighbors.c) removeNeighbor() |
Queuing | CREATE.queue READ.queue READ.queue.stats UPDATE.queue DELETE.queue | Required?? (can be supported by OpenQueue with sligth modifications) Required?? (can be supported by OpenQueue with sligth modifications) Required?? (can be supported by OpenQueue with sligth modifications) Required?? (can be supported by OpenQueue with sligth modifications) Required?? (can be supported by OpenQueue with sligth modifications) |
Security | CONFIGURE.security CONFIGURE.security.macKeyTable CONFIGURE.security.macSecurityLevelTable | Required?? Required?? Required?? |
Data | SEND.data RECEIVE.data | res_send() res_notifReceive() |