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:

  1. Subset of Commands (Xavi) [section 2.4]
  2. 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]
  3. Statistics: ETX, [section 2.7]
  4. Monitoring [section 2.8]
  5. 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()