# Whisper: Programmable and Flexible Control on Industrial IoT Networks
## 1 Introduction  
Advanced network management is becoming crucial for Internet of Things (IoT) networks, especially since they are employed more and more in industrial deployments (Industrial Internet of Things). In these deployments, IoT devices typically mission control critical infrastructures, thus mandating high reliability, low latency, and careful energy consumption, which only dynamic and flexible network management can offer. Software Defined Networking (SDN) is a promising architecture to enable flexible and dynamic network management, in a programmable and highly automated way. It achieves these goals by relying on a logically centralized controller that automatically configures all network devices, at runtime. SDN is already popular in wired networks, where it has been shown useful for a numberof management tasks [1]. SDN concepts have also been applied to access points and base stations in infrastructure-based wireless networks, like Wi-Fi, WiMAX or LTE [2; 3]. We argue that SDN can also be beneficial for IoT networks. However, implementing SDN in Low-power and Lossy Networks (LLNs), such as the industrial IoT networks, is significantly challenging, much more than in wired networks. An LLN is usually organized in a wireless mesh, which implies the absence of out-of-band connectivity between the controller and the devices: control must therefore be exerted in-band, on a reliable communication channel over the lossy network. In addition, LLNs are highly constrained in terms of resources, both from a device and a network viewpoint: not only do the devices have low processor power, scarce memory, and limited battery life, but also network bandwidth and availability are constrained--for example, most devices can be in sleep mode during more than 99% of the time. This means that a practical SDN solution must minimize resource utilization for control tasks, e.g., keeping the number of control messages as low as possible and computations outside the devices. The latter observation also explains difficulties in designing SDN protocols for industrial IoT and integrating even a lightweight SDN stack on the devices. Finally, networks forwarding performance depends on both routing and scheduling functions, hence an IoT SDN controller needs to control both. In this work, we propose Whisper, (Wireless Heterogeneous IoT SDN-enabling Protocol for Embedded and Resource constrained devices), a practical centralized management system for industrial IoT networks which enables a central controller to remotely manipulate routing, and scheduling of any network device. To address the SDN-in-IoT challenges, a Whisper controller leverages from the distributed routing and scheduling protocols already running in the network to both establish reliable communication and control remote devices. For example, assuming that Figure 1 represents a traditional LLN network in which nodes are wirelessly connected and build a tree to route traffic towards a gateway (node R) by means of a metric. Whisper can achieve specific dynamic (re)routing behaviours by artificially manipulating the metrics which define routing paths, thus managing the wireless resources accordingly. Such behaviours are not allowed by default in the routing protocol. For instance, by altering the routing metrics in the network to steer the traffic from nodes 8 and 9 through node 4, skipping node 3 due to low battery issues, and avoiding overloading node 2. The Whisper control mechanism is compatible with device resources, as the exploited protocols are run in the first place; and avoids the need for additional SDN-specific support on IoT devices, which also has the positive side effect of working in today's networks. To further reduce resource usage, Whisper aims at minimizing the information injected in the underlying protocols. In practice, a Whisper controller controls the IoT network by disseminating misleading information on purpose, or that enables the controller to \"impersonate\" other nodes.