Gradus

Vol 4, No 2 (2017): Autumn (November)

 

SDN PROGRAMOZÁS, A PYRETIC PROGRAMOZÁSI NYELV

SDN PROGRAMMING, THE PYRETIC PROGRAMMING LANGUAGE


Agg Péter András , Johanyák Zsolt Csaba , Halczman Szilvia

Abstract

A szoftver által definiált hálózatok (SDN) egy meglehetősen új hálózati megoldás. Az SDN szétválasztja a vezérlő síkot és az adatsíkot. Három fő résszel rendelkezik: az adatsíkkal, a vezérlő síkkal és az alkalmazási síkkal. Az alkalmazási sík tartalmazza a programozási nyelveket. Ezen nyelvek használatával a felhasználó vezérelheti és módosíthatja a hálózat viselkedését. Az SDN az alacsony szintű programozási nyelvektől a magas szintűig számos lehetőséget biztosít számunkra. A Pyretic magas szintű, nyílt forráskódú és Python alapú programozási nyelv. A Pyretic párhuzamos és egymás utáni operátorok használatával statikus és dinamikus továbbítási irányelveket határoz meg. Fő jellemzője a „ha - akkor” kapcsolat és a függvények használata. Cikkünkben bemutatjuk általánosságban az SDN programozást, a Python és a Frenetic nyelvek jellemzőit. Ismertetjük a Pyretic nyelv szabályait és szerkezetét. Ismertetünk néhány programozási problémát és annak megoldását, mint például dinamikus, vagy lekérdezési szabályok létrehozása, módosítása.

Software-Defined Networking (SDN) is a new networking approach that separates the control plane and the data plane, and it uses three layers, i.e. the data, the control and the application layer. The application layer contains the programming languages. Using SDN programming languages one can control and modify the behaviour of the network. Pyretic is a high-level programming language that is open-source and Python based. Pyretic specifies static and dynamic forwarding policies by using parallel and sequential operators. Furthermore, it also uses if and return statements, variables and function definitions. In this paper, first we introduce the SDN programming and the Python languages in general. Then, we show some policies and the structure of the Pyretic language. We also present typical problems and solutions, e.g. creating and modifying dynamic or query policies.


Keywords

Kulcsszavak: SDN, Szoftver által definiált hálózat, SDN programozás, SDN programozási nyelvek, Pyretic,

Keywords: SDN, Software-Defined Network, SDN programming, SDN programming languages, Networks,


References

[1] Casado, N. Foster, and A. Guha, “Abstractions for software-defined networks,” Commun. ACM, vol. 57, no. 10, pp.86–95, Sep. 2014.
[2] N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford, S. Shenker, and J. Turner,“OpenFlow: enabling innovation in campus networks,” SIGCOMM Comput. Commun. Rev., vol. 38, no. 2, pp. 69–74, Mar. 2008.
[3] OpenFlow Switch Specification http://archive.openflow.org/documents/openflow-spec-v1.1.0.pdf [Megtekintés:2017. 09. 04.]
[4] Fernando M. V. Ramos, D. Kreutz, Paulo Verissimo, “Software-defined networks: On the road to the softwarizationof networking” Agile Product Management & Software Engineering Excellence, Business Technology & DigitalTransformation Strategies Cutter Business Technology Journal, vol. 28., pp. 6-13., May. 2015
[5] A. Lara, A. Kolasani, and B. Ramamurthy, “Network innovation using OpenFlow: A survey,” IEEE CommunicationsSurveys & Tutorials, 16(1), pp. 493-512. 2014.
[6] A. Van Deursen, P. Klint, and J. Visser, “Domain-specific languages: An annotated bibliography.” Sigplan Notices,vol. 35, no. 6, pp. 26–36. , 2000.
[7] Network Application Programming Interfaces (APIs) http://compnetworking.about.com/od/softwareapplicationstools/g/bldef_api.htm [Megtekintés: 2017. 08. 27.]
[8] M. Mernik, J. Heering, and A. M. Sloane, “When and how to develop domain-specific languages,” ACM computingsurveys (CSUR), vol. 37, no. 4, pp. 316–344, 2005.
[9] N. Foster, M. J. Freedman, R. Harrison, J. Rexford, M. L. Meola, and D. Walker, “Frenetic: a high-level languagefor OpenFlow networks,” in Proceedings of the Workshop on Programmable Routers for Extensible Services ofTomorrow. ACMA, p. 6., 2010.
[10] N. Foster, A. Guha, M. Reitblatt, A. Story, M. J. Freedman, N. P. Katta, C.Monsanto, J.Reich, J.Rexford,C.Schlesinger et al., “Languages for software-defined networks,” Communications Magazine, IEEE, vol. 51, no. 2,pp. 128–134., 2013.
[11] J. Reich, C. Monsanto, N. Foster, J. Rexford, and D. Walker, “Modular SDN programming with Pyretic,” TechnicalReport of USENIX, 2013.
[12] Harvey M. Deitel, et al, Prentice Hall; “Python How to program” 1292 pages, ISBN: 0130923613, February 4, 2002.
[13] John E. Grayson, ”Python and Tkinter Programming” Manning Publications; 1st edition, 688 pages, ISBN:1884777813, January, 2000.
[14] Pyretic http://frenetic-lang.org/pyretic/ [Megtekintés: 2017. 09. 15.]
[15] Christopher Monsanto, Joshua Reich, Nate Foster†, Jennifer Rexford, David Walker: Composing Software-Defined Networks, 10th USENIX Symposium on Networked Systems Design and Implementation, Proceedings ofNSDI ’13, pp. 1-15., 2013.



Copyright (c) 2024 Gradus