Advertisement

A Reo Model of Software Defined Networks

  • Hui FengEmail author
  • Farhad Arbab
  • Marcello Bonsangue
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11852)

Abstract

Reo is a compositional coordination language for component connectors with a formal semantics based on automata. In this paper, we propose a formal model of software defined networks (SDNs) based on Reo where declarative constructs comprising of basic Reo primitives compose to specify descriptive models of both data and control planes of SDNs. We first describe the model of an SDN switch which can be compactly represented as a single state constraint automaton with a memory storing its flow table. A full network can then be compositionally constructed by composing the switches with basic communication channels. The reactive and proactive behaviour of the controllers in the control plane of an SDN can also be modelled by Reo connectors, which can compose the connectors representing data plane. The resulting model is suitable for testing, simulation, visualization, verification, and ultimately compilation into SDN switch code using the standard tools already available for Reo.

Keywords

Formal model Software defined networks Reo Constraint automata Component composition Coordination 

References

  1. 1.
    Albert, E., Gómez-Zamalloa, M., Rubio, A., Sammartino, M., Silva, A.: SDN-actors: modeling and verification of SDN programs. In: Havelund, K., Peleska, J., Roscoe, B., de Vink, E. (eds.) FM 2018. LNCS, vol. 10951, pp. 550–567. Springer, Cham (2018).  https://doi.org/10.1007/978-3-319-95582-7_33CrossRefGoogle Scholar
  2. 2.
    Anderson, C.J., et al.: NetKAT: semantic foundations for networks. ACM Sigplan Not. 49(1), 113–126 (2014)zbMATHGoogle Scholar
  3. 3.
    Arbab, F.: Reo: a channel-based coordination model for component composition. Math. Struct. Comput. Sci. 14(3), 329–366 (2004)MathSciNetCrossRefGoogle Scholar
  4. 4.
    Arbab, F.: Proper protocol. In: Ábrahám, E., Bonsangue, M., Johnsen, E.B. (eds.) Theory and Practice of Formal Methods. LNCS, vol. 9660, pp. 65–87. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-30734-3_7CrossRefGoogle Scholar
  5. 5.
    Arbab, F., Koehler, C., Maraikar, Z., Moon, Y.J., Proença, J.: Modeling, testing and executing Reo connectors with the eclipse coordination tools. Presented at the 5th International Workshop on Formal Aspects of Component Systems (2008)Google Scholar
  6. 6.
    Arbab, F., Meng, S., Moon, Y.J., Kwiatkowska, M., Qu, H.: Reo2MC: a tool chain for performance analysis of coordination models. In: van Vliet, H., Issarny, V. (eds.) Proceedings of the of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 287–288. ACM (2009)Google Scholar
  7. 7.
    Baier, C., Sirjani, M., Arbab, F., Rutten, J.: Modeling component connectors in Reo by constraint automata. Sci. Comput. Program. 61(2), 75–113 (2006)MathSciNetCrossRefGoogle Scholar
  8. 8.
    Ball, T., et al.: Vericon: towards verifying controller programs in software-defined networks. SIGPLAN Not. 49(6), 282–293 (2014)CrossRefGoogle Scholar
  9. 9.
    Casado, M., et al.: SANE: a protection architecture for enterprise networks. In: Keromytis, A.D. (ed.) USENIX Security Symposium, p. 50. USENIX Association (2006)Google Scholar
  10. 10.
    Cruz, R., Proença, J.: ReoLive: analysing connectors in your browser. In: Mazzara, M., Ober, I., Salaün, G. (eds.) STAF 2018. LNCS, vol. 11176, pp. 336–350. Springer, Cham (2018).  https://doi.org/10.1007/978-3-030-04771-9_25CrossRefGoogle Scholar
  11. 11.
    Ghassemi, F., Tasharofi, S., Sirjani, M.: Automated mapping of Reo circuits to constraint automata. Electron. Notes Theor. Comput. Sci. 159, 99–115 (2006)CrossRefGoogle Scholar
  12. 12.
    Izadi, M., Bonsangue, M.M.: Recasting constraint automata into Büchi automata. In: Fitzgerald, J.S., Haxthausen, A.E., Yenigun, H. (eds.) ICTAC 2008. LNCS, vol. 5160, pp. 156–170. Springer, Heidelberg (2008).  https://doi.org/10.1007/978-3-540-85762-4_11CrossRefGoogle Scholar
  13. 13.
    Jongmans, S.S., Kappé, T., Arbab, F.: Constraint automata with memory cells and their composition. Sci. Comput. Program. 146, 50–86 (2017)CrossRefGoogle Scholar
  14. 14.
    Jongmans, S.S.T.Q.: Automata-theoretic protocol programming. Ph.D. thesis, Leiden University (2016)Google Scholar
  15. 15.
    Kang, M., et al.: Formal modeling and verification of SDN-openflow. In: 6th International Conference on Software Testing, Verification and Validation, pp. 481–482. IEEE (2013)Google Scholar
  16. 16.
    Kim, Y.M., Kang, M., Choi, J.Y.: Formal specification and verification of firewall using TLA+. In: Daimi, K., Arabnia, H.R. (eds.) Proceedings of the International Conference on Security and Management (SAM), pp. 247–251 (2017)Google Scholar
  17. 17.
    Kokash, N., Krause, C., de Vink, E.P.: Data-aware design and verification of service compositions with Reo and mCRL2. In: Shin, S.Y., Ossowski, S., Schumacher, M., Palakal, M.J., Hung, C. (eds.) Proceedings of the 2010 ACM Symposium on Applied Computing, pp. 2406–2413. ACM (2010)Google Scholar
  18. 18.
    Lamport, L.: Specifying Systems, The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley (2002)Google Scholar
  19. 19.
    McKeown, N., et al.: Openflow: enabling innovation in campus networks. Comput. Commun. Rev. 38(2), 69–74 (2008)CrossRefGoogle Scholar
  20. 20.
    Proença, J., Clarke, D., De Vink, E., Arbab, F.: Dreams: a framework for distributed synchronous coordination. In: Ossowski, S., Lecca, P. (eds.) Proceedings of the 27th Annual ACM Symposium on Applied Computing, pp. 1510–1515. ACM (2012)Google Scholar
  21. 21.
    Reitblatt, M., Canini, M., Guha, A., Foster, N.: FatTire: declarative fault tolerance for software-defined networks. In: Foster, N., Sherwood, R. (eds.) Proceedings of the 2nd ACM SIGCOMM Workshop on Hot topics in Software Defined Networking, pp. 109–114. ACM (2013)Google Scholar
  22. 22.
    Schnepf, N., Badonnel, R., Lahmadi, A., Merz, S.: Automated verification of security chains in software-defined networks with synaptic. In: 2017 IEEE Conference on Network Softwarization (NetSoft), pp. 1–9. IEEE (2017)Google Scholar
  23. 23.
    Soulé, R., et al.: Merlin: a language for provisioning network resources. In: Seneviratne, A., Diot, C., Kurose, J., Chaintreau, A., Rizzo, L. (eds.) Proceedings of the 10th ACM International Conference on Emerging Networking Experiments and Technologies, pp. 213–226. ACM (2014)Google Scholar
  24. 24.
    Xiang, S., Zhu, H., Xiao, L., Xie, W.: Modeling and verifying TopoGuard in OpenFlow-based software defined networks. In: Pang, J., Zhang, C., He, J., Weng, J. (eds.) 2018 International Symposium on Theoretical Aspects of Software Engineering (TASE), pp. 84–91. IEEE Computer Society (2018)Google Scholar
  25. 25.
    Zakharov, V.A., Smelyansky, R.L., Chemeritsky, E.V.: A formal model and verification problems for software defined networks. Autom. Control. Comput. Sci. 48(7), 398–406 (2014)CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.LIACSLeiden UniversityLeidenThe Netherlands
  2. 2.CWIAmsterdamThe Netherlands

Personalised recommendations