# Whisper: Programmable and Flexible Control on Industrial IoT Networks
## 2 Background  
### Whisper with Respect to Related Work  
A huge amount of work has been done in the past on wireless sensor networks, aiming at improving both routing [7; 8; 9; 10; 11; 12] and medium access [13; 14; 15; 16; 17; 18] protocols. Prior contributions, however, overlooked the need for control flexibility, and focused on distributed protocols. What today's IoT networks would really need, though, is a form of centralized control. In fact, centralized architectures have been proven effective in wired networks [19] to achieve optimal, dynamic control. We consider the question of what could be a practical centralized architecture for industrial IoT deployments. There are two main design possibilities: (i) adding support for an SDN-like protocol on top of MAC and network layers tailored to IoT (traditional approach), or (ii) integrate network control with current MAC and network layers (Whisper approach). The first option is the one on which SDN for IoT research is currently focusing [20; 21; 22]. We argue why this is not the only right way to go, and why integrating network control with medium access management and routing is inherently more promising. SDN originated and spread quickly in wired networks [23], where it combines huge advantages (e.g., flexibility over an otherwise ossified environment) with relatively easy deployment (e.g., possibility to connect nodes and controllers out-of-band). Advancements in the field have led to complex management applications such as defining network slices, enforcing per-flow Quality of Service, and dynamically orchestrating virtual network functions. For an overview of such advancements, we refer the reader to [1; 24] and the successful deployments presented in [25]. Among the works on SDN for wired networks, Fibbing [26; 27] is the closest in philosophy to ours. In Fibbing, a centralized controller injects information about fake links and nodes in an underlying  
Figure 1: Example of RPL topology. shortest-path routing protocol run by the real routers. The injected information enables the controller to control the output of routers' computations, and ultimately their forwarding. Whisper shares with Fibbing the idea of injecting misleading messages in the routing plane. However, control mechanisms, algorithms, messages (format and content), and overall trade-offs are all entirely different. For example, to be practical in IoT settings, Whisper controls its wireless network without requiring nodes to compute shortest paths on the full network and without adding fake nodes or links which would increase the number of messages as well as the information kept by routers. In addition, Whisper addresses the peculiar needs of wireless mesh networks: for example, it controls the scheduling plane, coordinating cell allocations, in addition to routing. SDN is relatively less popular in wireless networks [2; 3; 28; 29]. SDN over wireless approaches mostly focuses on settings where management is performed by infrastructure-based access points and base stations of Wi-Fi, WiMAX and LTE. In these networks, protocols like OpenFlow [19] can be run on the access points, since they have sufficient hardware resources. Moreover, there are already well established management protocols for these types of networks. In LLNs, however, devices are highly resource constrained, which makes it impossible to transpose SDN solutions from wired or other wireless environments. Only a few works focus on making the first steps towards introducing SDN in LLNs and IoT networks. [PERSON] et al. [30] presents the work of the DetNet [31] and 6 TiSCH [32] IETF Working Groups (WG), and identifies the challenges faced by SDN in IoT networks--most of which we discussed in this paper. [PERSON] et al. [33] describe a general architecture and discuss some of the constraints and requirements for SDN over IoT. A few SDN approaches for wireless sensor networks have been proposed in [PERSON] et al. (TinySDN) [34] and in [PERSON] et al. (SDN-WISE) [20].