J Reliable Intell Environ DOI 10.1007/s40860-017-0045-y ORIGINAL ARTICLE A characterisation of verification tools for software defined networks Leticia Lavado 1 · Laura Panizo 1 · María-del-Mar Gallardo 1 · Pedro Merino 1 Received: 24 April 2017 / Accepted: 19 July 2017 © Springer International Publishing AG 2017 Abstract Software-defined networking (SDN) is a new paradigm to introduce intelligence in communication net- works through centralised programming. SDN separates data and control plane with two main components, the pro- grammable switches (data plane) and the central controller where network applications are executed. This highly pro- grammable and flexible network introduces many challenges from the point of view of reliability (or robustness), and operators need to ensure the same level of confidence as in previous less flexible deployments. This paper provides a first study of the current verification tools used to anal- yse different properties of SDNs before deployment and/or during the exploitation of the network. Most of these tools offer some kind of automatic verification, supported by algo- rithms based on formal methods, but they do not differentiate between fixed and mobile/wireless networks. In the paper, we provide a number of classifications of the tools to make this selection easier for potential users, and we also iden- tify promising research areas where more effort needs to be made. This work has been supported by the Spanish Ministry of Economy and Competitiveness Project TIN2015-67083-R. B Leticia Lavado leticialavmu@lcc.uma.es Laura Panizo laurapanizo@lcc.uma.es María-del-Mar Gallardo gallardo@lcc.uma.es Pedro Merino pedro@lcc.uma.es 1 Andalucía Tech, Dept. Lenguajes y Ciencias de la Computación, Universidad de Málaga, Málaga, Spain 1 Introduction Computer and communication networks have become a crit- ical technology on which many human activities rely, so the verification of network reliability has a clear impact on users, service providers and network operators. Due to this impact, since the initial beginnings of computer protocols in the 1970s, there has been a large research effort focused on algorithms and tools that analyse the correct behaviour of these protocols to find design or implementation errors as soon as possible [9, 26, 66]. This research effort has con- tributed to new areas in computer science, like the use of formal methods for reliability verification [20, 52, 67]. As networking technology has evolved since the 70s towards more complex, flexible and intelligent networks, the verification techniques to ensure reliability should also have evolved. The evolution towards more flexibility was initially tried with approaches such as active networks [11, 62, 63]. Active networking allowed the network to be configured by third parties so as to gain the necessary support to deploy new protocols and services. In some cases, like in the capsule approach for active networks, the IP packets travel through the network with the code to be executed to process the packets in the nodes, increasing the risk for unexpected behaviours in the network. Such programmabil- ity was followed by new methods to verify the correctness of the applications that manipulate the network elements [19, 33, 61]. After this first attempts to make the network more flexible (active networks), researchers, network operators and manu- factures accepted software defined networks (SDN) [49, 58] as a feasible approach for real networks (see [17] for a dis- cussion on how active networks affected SDN creation). SDN has emerged with the intention of providing neces- sary services in modern networks to cover some of the IP 123