3.1 OpenDaylight

OpenDaylight (ODL) je softvérová platforma zabezpečujúca funkciu SDN kontroléra pre moderné SDN siete vyvíjaná v rámci organizácie Linux Foundation Networking. Názvy jednotlivých verzií ODL sú zvolené podľa poradia prvok v Periodickej tabuľke prvkov, aktuálna verzia má názov Potassium (draslík).  

ODL má otvorenú, modulárnu architektúru. Základom ODL platformy je MD-SAL (Model-Driven Service Abstraction Layer). SAL zabezpečuje abstrakciu sieťových zdrojov založenú na modeloch, tzn. že všetky sieťové zariadenia a sieťové aplikácie sú reprezentované ako objekty alebo modely, ktoré sú popísané v jazyku YANG. Modely YANG poskytujú zovšeobecnený popis možností zariadenia alebo aplikácie bez toho, aby museli poznať konkrétne detaily implementácie. V rámci SAL sú modely jednoducho definované ich príslušnými rolami v danej interakcii. Model „výrobcu“ (producer) implementuje API a poskytuje údaje API; „spotrebiteľský“ (consumer) model používa API a spotrebúva údaje API. Zatiaľ čo výrazy „na sever“ a „na juh“ poskytujú pohľad sieťového inžiniera na SAL, výrazy „spotrebiteľ“ a „výrobca“ opisujú presnejšie interakcie v rámci SAL.

SAL „páruje“ výrobcov a spotrebiteľov a zabezpečuje výmenu informácií medzi nimi. Spotrebiteľ môže nájsť poskytovateľa, o ktorého má záujem. Výrobca môže generovať upozornenia; spotrebiteľ môže dostávať upozornenia a vykonávať RPC operácie, aby získal údaje od poskytovateľov. Povedané inak, výrobca môže vkladať údaje do úložiska SAL a spotrebiteľ môže čítať údaje z úložiska SAL.

ODL zahŕňa podporu pre celú sadu protokolov, ako napr. OpenFlow, OVSDB, NETCONF, BGP a mnohé ďalšie. Protokoly južného rozhrania a služby riadiacej roviny obsiahnuté v MD-SAL, môžu byť individuálne vybrané alebo napísané a zabalené spolu podľa požiadaviek daného použitia. Balík ovládačov sa skladá zo štyroch kľúčových komponentov (odlparent, ovládač, MD-SAL a yangtools). Každý z týchto komponentov je izolovaný ako funkcia Karaf.

ODL je JVM (Java Virtual Machine) softvérová aplikácia, ktorá môže byť spustená na ľubovoľnom operačnom systéme a hardvéri podporujúcom Javu. Využíva nástroje:

  • OSGI – rámec (framework) pre back-end,  ktorý umožňuje dynamické načítanie zväzkov (bundle) a balíkov (packages) súborov JAR a vzájomné spájanie zväzkov za účelom výmeny informácií.
  • Karaf – aplikačný kontajner vytvorený nad OSGI, ktorý zjednodušuje balíčkovanie a inštalácie aplikácií.
  • YANG – jazyk na modelovanie dát používaný na modelovanie konfigurácie a stavových údajov spravovaných aplikáciami, volaniami vzdialených procedúr a oznámenia.

Bloková schéma OpenDaylight verzia Fluorine

Obr. 2 Bloková schéma OpenDaylight verzia Fluorine

 MD-SAL používa pre definovanie rozhrania dát modelovací jazyk YANG. MD-SAL poskytuje dva rôzne typy API:

  • MD-SAL Binding: API MD-SAL, ktoré vo veľkej miere využívajú rozhrania API a triedy generované modelmi YANG, ktoré poskytujú viac času na kompiláciu.
  • MD-SAL DOM: Rozhranie API (Document Object Model), ktoré používa reprezentáciu údajov typu DOM, čo zvyšuje ich výkonnosť, ale poskytuje menej času na kompiláciu.