Reprogramming Wireless Sensor Networks by Using SDN

Reprogramming Wireless Sensor Networks by
Using SDN-WISE: a Hands-On Demo
Laura Galluccio∗ , Sebastiano Milardo† , Giacomo Morabito∗ , Sergio Palazzo∗
∗ University
† CNIT
of Catania, Catania, Italy
Research Unit Catania, Catania, Italy
Abstract—SDN-WISE is a Software Defined Networking solution for Wireless Sensor Networks (WSNs). The aim of SDNWISE is to simplify the management of the network, the
development of novel applications, and the experimentation of
new networking solutions in WSNs. Objectives of this demo are
to demonstrate how different logical WSNs can coexist exploiting
the same sensor nodes and show how easy is it to program the
behavior of sensor nodes by few lines of code.
Laptop Sink Node Sensor Node APPLICATION APPLICATION INPP T D FWD APPLICATION INPP T D FWD CONTROLLER WISE-­‐VISOR ADAPTATION MAC ADAPT. PHY PHY MAC PHY I. I NTRODUCTION
The Software Defined Networking (SDN) approach radically
changes the way network management is conceived [6]. The
idea of concentrating all the management functionalities of a
network, that is the Control Plane, in a single logical entity,
called Controller, makes possible to change the behavior of
the network by simply installing a new software component
[7]. Despite the obvious benefits of such an approach, which
already promoted the success of SDN in both wired and cellular networks [4], only a few works have, recently, addressed
the Wireless Sensor Networks (WSN) [5][2]. SDN-WISE is a
SDN solution for WSNs that exploits the flexibility and ease
of management that are implicit in the SDN paradigm. SDNWISE is an evolution of a previous work on SDN for WSNs,
called SDWN [2].
SDN-WISE goes further SDWN by introducing some novel
functions which are particularly convenient in WSNs. In fact,
while the clear separation of the Control Plane from the Data
Plane remains unchanged [6], the peculiar characteristics of
the WSNs, such as the limitations in terms of computing
power or energy availability, require ad hoc solutions. In
SDN-WISE a stateful approach is introduced as suggested by
Bianchi et al. [1] for wired networks. The possibility to have
sensor nodes that respond to incoming messages depending
on state variables reduces the amount of messages exchanged
between each sensor node and the Controller, thus reducing
the number of packets sent over the network and the total
energy consumption. Furthermore, SDN-WISE includes a new
network virtualization system, called WISE-Visor, which can
abstract network resources and create several virtual sensor
networks that can be assigned to different Controllers.
Architecture and protocol details of SDN-WISE will be presented during the INFOCOM technical sessions (specifically,
in Session “Sensor networks 2”) [3]. The purpose of this demo
is to show some peculiarity of SDN-WISE, and how easy it is
programming the behavior of a WSN by exploiting the SDNWISE features.
Fig. 1: SDN-WISE@INFOCOM testbed and protocol stack.
II. D ESIGN AND I MPLEMENTATION
In this section we provide the major characteristics of SDNWISE, more details can be found in [3]. According to the SDN
paradigm, SDN-WISE clearly decouples the Data plane from
the Control plane. In general the Control plane is run outside
the WSN while the Data plane is run by the sensor nodes.
These nodes operate using the PHY and MAC layer of IEEE
802.15.4.
The SDN-WISE functions running in the sensor nodes are
built on top of the IEEE 802.15.4 layers. From a functional
point of view, such SDN-WISE functions are organized into
three layers: the Forwarding layer (FWD), the In-Network
Packet Processing layer (INPP), and the Topology Discovery
layer (TD) (Fig. 1). The Forwarding layer handles incoming
packets as stated by the entries contained in a data structure
called WISE Flow Table. Each entry of the WISE Flow Table
has three parts: a set of conditions, an action and the statistical
information. If the conditions expressed in the first part are
satisfied, the corresponding action is executed. The statistical
information is used to decide when to delete a rule that is stale.
According to the possible values of the action field, some of
the incoming messages can be sent to the In-Network Packet
Processing layer. The most relevant operation of this layer is
data aggregation. The Topology Discovery layer is used to
gather information about neighbor nodes which is sent to the
Controller that creates an accurate representation of the WSN.
The functions of the Control Plane running in the Controller can be divided into three layers as well: Adaptation
Layer, WISE-Visor, and Control layer. The Adaptation Layer
modifies packets coming from sensor nodes so that they can
2
be transported by a traditional TCP-UDP/IP network, and
viceversa. The FlowVisor manages the operations of several
virtual WSNs which may apply different routing policies over
the same physical network. Finally, the Control layer controls
the behavior of each sensor node and responds to Request
messages coming from the network. When a node receives
a packet which does not fit any entry of its WISE Flow
Table, it sets a flag in the header of the packet and sends
it to the Controller. Usually, the Controller responds with
a message containing one or more rules to manage packets
having characteristics similar to the ones of the packet that
was previously not recognized.
III. D EMO D ESCRIPTION
The testbed is composed of 6 wireless sensor nodes, one
of them is the sink of the network and is connected to a
laptop that will host the Control Plane. All the nodes are
Embit EMB-Z2530PA. These devices provide IEEE 802.15.4
wireless connectivity in the 2.4 GHz ISM band. They are
based on Texas Instruments CC2530 which is an 8051 8bit controller. Each node is equipped with 8kB of RAM
and 256 kB of Flash memory. Regarding the software, the
testbed is made by two components. First, the firmware on
the nodes, that is written in C and implements the SDNWISE protocol and a simple Application Layer that echoes the
messages received. Second, the Control Plane that is written
in Java and is made of 30 classes. In particular, one of
them is the Controller abstract class, which provides all the
methods needed to get information on the network topology
(e.g., number of nodes, neighbors, battery level, etc.) and two
abstract methods that must be implemented in order to obtain
a fully working Controller. The first one is used at the network
start-up to send preliminary rules to the nodes, while the
second one is run every time the controller receives a request
from the network. Finally, we will set the WISE-Visor in such
a way that two Control layers will be supported, each of which
will have a different view of the same physical network.
The demo itself will be divided into two phases. Objective
of the first phase is to show the major characteristics of the
SDN-WISE protocol, whereas in the second phase we will
demonstrate that programming the behavior of a node is very
easy and can be accomplished with a few lines of code.
In the first phase, at the start-up all nodes will be turned
on in sequence to show how the two different Control layers
create two different representations of the same network. More
specifically, one of the Control layer will see a random network
whereas the other will see a ring network. To show this feature
we have implemented the GUI presented in Fig. 2. Then,
we will start an application which generates packets in the
sink and sends them to a sensor node randomly chosen. As
regards the routing policy, both Control layers will apply a
Dijkstra routing algorithm whose JAVA implementation has
been downloaded from the Internet. Nevertheless, since the
Control layers have different views of the same network, actual
routing of packets will be different. Sensor nodes have been
programmed in such a way that they turn a led on when they
forward a packet and turn it off after 5 s. In this way it will
be possible to observe the route of each packet.
Fig. 2: Screenshot of the topologies of the same physical
network observed by two different Controllers.
During the second phase we will show how easy is it
programming the behavior of sensor nodes. To this purpose
we will start from the implementation of a Control layer and
modify it. Then, we will invite attendees to try themselves
to develop the code which further modifies the behavior of
the sensor nodes. To foster the involvement of the audience
we will reward volunteers with typical Italian almond paste
cookies.
IV. C ONCLUSIONS
SDN-WISE is a Software Defined Networking solution
for WIreless SEnsor networks. An overview of SDN-WISE
protocol stack has been provided along with a description of
a physical testbed which implements the proposed solution. As
compared to the state-of-art SDN-WISE reduces the amount
of information exchanged between sensors and the SDN
controllers by using a stateful approach and provides a new
level of abstraction which allows several logical WSNs to
coexist over the same set of sensor nodes.
ACKNOWLEDGMENTS
This work was supported by the 7th Framework Program
of the European Commission within the NEWCOM# project
and by MIUR under the SIGMA contract.
R EFERENCES
[1] G. Bianchi, M. Bonola, A. Capone, and C. Cascone. OpenState: Programming Platform-independent Stateful OpenFlow Applications Inside
the Switch. ACM Computer Communication Review. Apr. 2014.
[2] S. Costanzo, L. Galluccio, G. Morabito, and S. Palazzo. Software
Defined Wireless Networks: Unbridling SDNs. EWSDN 2012. Oct. 2012.
[3] L. Galluccio, S. Milardo, G. Morabito, and S. Palazzo. SDN-WISE:
Design, prototyping and experimentation of a stateful SDN solution for
Wireless Sensor networks. IEEE Infocom 2015. Apr. 2015.
[4] L.E. Li, Z. M. Mao, J. Rexford. Toward Software-Defined Cellular
Networks EWSDN 2012. Oct. 2012.
[5] T. Luo, H. Tan, and T. Quek. Sensor OpenFlow: Enabling SoftwareDefined Wireless Sensor Networks. IEEE Comm. Letters. Nov. 2012.
[6] N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson,
J. Rexford, S. Shenker, and J. Turner. OpenFlow: Enabling Innovation
in Campus Networks. White paper. Mar. 2008.
[7] B. Pfaff et al.. OpenFlow Switch Specification – Version 1.1.0 (Wire
Protocol 0x02). Feb. 2011.