-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Time Slotted Channel Hopping (TSCH) is a MAC layer of IEEE 802.15.4 whose operation combines the features of TDMA, FDMA and Channel Hopping. Each node gets access to the shared medium based on a Schedule. The Schedule carried by each node defines when a particular node can Transmit/ Receive (or do both). With the current implementation OF 6TiSCH in Contiki-NG, a minimal schedule is proposed. This consists of just one active shared slot per slotframe. Also, this Schedule is built locally at each node which is decided at compile time.
With Dynamic Scheduling, we aim to extend the infrastructure such that the nodes can dynamically change their Schedules based on the information obtained from the Coordinator. This would help in adapting the network dynamically depending on the application and environment. The Coordinator can collect the necessary data from the nodes and can suggest alternate Schedules for network operation. The Dynamic Scheduling feature enables flexibility in network operation to meet necessary throughput, latency and QoS.
For more information about Contiki-NG please visit Contiki-NG Github repo.
We consider a star topology with nodes being at one hop distance from the Coordinator. Coordinator, apart from managing the network and taking part in network operations, also interacts with the Network Manager application via serial communication. The Network Manager (NM) application is implemented in python. The user can choose schedules from the NM CLI interface and the same is sent out to the Coordinator, which further communicates the same to all the nodes in the network.
An example application that runs the dynamic scheduling infrastructure, is provided along with the implementation. The application is a simple NullNet application, that periodically broadcasts a counter value.
Follow the Step by step guide to run the dynamic scheduling example program built using NullNet.
The Dynamic Scheduling implementation consists of the following components
- Network Manager (NM) application that communicates the chosen schedule to the Coordinator.
- The application running at the Coordinator that responds to NM application and communicates the schedule to the nodes in the network.
- Nodes, which respond to change in schedules sent by the Coordinator and update accordingly.
More information about the implementation details of the API can be found in the API Documentation.
Samuele Zoppi and Sharada Prasad Shantharam.
This project is licensed under the MIT License - see the LICENSE.md file in contiki-ng/os/services/dynsched
for details.