# Whisper: Programmable and Flexible Control on Industrial IoT Networks
## 2 Background
### Background on LLN and IoT Protocols  
LLNs and IoT networks often rely on the IEEE 802.154e TSCH mode for the MAC layer and the RPL protocol for routing. 6 TiSCH is defined by the 6 TiSCH IETF WG [32] with the goal of creating a standard protocol based on TSCH attached to an IPv6-enabled IoT upper stack: it aims at providing deterministic performance and ultra-relatability with low consumption of nodes' resources [5; 17; 36]. The 6 TiSCH stack is built upon the IEEE 802.15.4 PHY layer, which typically uses 16 orthogonal channels in the 2.4 GHz ISM band (in addition the standard allows the 868 MHz band). On top of this, the TSCH layer divides the channel access in timeslots of typically 10 ms duration that allows for sending, at 250 kbps, a 127 byte size packet and receives a short ACK. Timeslots are made of a number of grouped slotframes. The combination of timeslots in a slotframe and the available channels result in a Channel Distribution Usage (CDU) matrix, in which each cell is a combination of a timeslot and a channel offset. A scheduler included in the 6 Top Sublayer defines when a node has to transmit, receive or sleep during one of these cells. Starting from the Minimal Configuration [37], a node can build its schedule according to a Scheduling Function (SF) by using a set of Sixtop Protocol (6P) messages. The defined SF in 6 TiSCH by default is the Minimal Scheduling Function (MSF), and allows each node to allocate or deallocate cells according to its traffic demands. In 6 TiSCH, and in other TSCH-based solutions such as Orchestra [38], RPL is used for building uplink and downlink IPv6 routes. RPL is a gradient based routing protocol in which the network is built as a Destination Oriented Directed Acyclic Graph (DODAG) and each node has a rank value that monotonically decreases as nodes are further from the DODAG root. For traffic forwarding, every node locally selects its successor in the DODAG, or parent, which is the next-hop that the node uses for sending uplink traffic towards the root. Each node selects its preferred parent as the neighbor with the lowest perceived rank. Node ranks are locally broadcasted through DODAG Information Object (DIO) messages. One or more performance metrics, such as Expected Transmission Count (ETX) or latency, are translated into a rank value by the Objective Function (OF). The default objective function used by RPL nodes is called OF0 [39], and relies on ETX and hop count. For downlink traffic, routing information is propagated through Destination Advertisement Object (DAO) messages. RPL has two operational modes. In the storing mode, every node maintains a routing table and the DAOs are sent from each child to its parent. In the non-storing mode, the exact path to follow is specified in the downlink-traffic packets: paths are calculated by the root, which receives DAO messages from all the nodes. Consider again the network depicted in Figure 1, where the DODAG is represented as a set of arrows, from each node to its respective parent, and dotted segments identify neighbors with no parent relationship. The rank of any node, the number illustrated by the node, is calculated as the rank of its parent plus a value that depends on the quality of the link between that node and its parent (e.g., in OF0). For example, node 8 chooses node 3 (it could have chosen 2 as well) as its parent because it perceives with it a lower rank than with 7 or 9. After choosing a parent, the node keeps that parent until another neighbor offers a rank significantly better than the one of its current parent--where it is significantly quantified by a threshold (e.g., 640 in 6 TiSCH by default). Although the OF0 is defined as the default RPL OF, different OF have been proposed [40; 41; 42] to optimize different Quality of Service parameters by assigning link weights differently. In addition, non-standard _forks_ of RPL have been explored [43; 44; 45]. Although enabling optimization of different metrics, these approaches do not really achieve network programmability and management flexibility.