Cílem této práce je navrhnout a implementovat nové uživatelské rozhraní pro knihovnu libnetconf2, které bude umožňovat nakonfigurovat NETCONF server podle popisu ietf-netconf-server YANG modelu. Podstatou řešení byla prvně analýza knihovny a modelu a jejich následné porovnání. Na základě výsledků porovnání jsem navrhl nové konfigurační rozhraní, jehož vstupem jsou YANG data popisující konfiguraci serveru. Navržené řešení umožňuje nastavovat chování serveru dvěma způsoby. První způsob zachovává a upravuje stávající konfiguraci pomocí speciálního atributu operace, zatímco druhý způsob kompletně nahrazuje stávající konfiguraci novou. Nové řešení je dále rozděleno do dvou fází --- vytvoření a aplikace konfiguračních dat. Práce se dále zaměřuje na implementaci návrhu, na jeho nedostatky, na které jsem narazil až při implementaci, a následně na testování, které bylo provedeno dvěma způsoby, a to pomocí vlastní testovací sady a následně integrací nového rozhraní do existujícího open-source NETCONF serveru s názvem netopeer2. V práci dále popisuji svůj přínos k open-source projektu libssh a k samotnému návrhu YANG modelu ietf-netconf-server. Výsledky této práce umožňují uživatelům knihovny libnetconf2 nakonfigurovat svůj NETCONF server podle standardizovaného popisu nebo sdílet svou konfiguraci pomocí konfiguračních dat. Nové konfigurační rozhraní je nyní součástí hlavní větve projektu libnetconf2.
Klíčová slova:
konfigurace, API, libnetconf2, NETCONF, YANG
Termín obhajoby
11.06.2024
Výsledek obhajoby
obhájeno (práce byla úspěšně obhájena)
znamkaAznamka
Klasifikace
A
Průběh obhajoby
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.
Otázky k obhajobě
Diagram 5.1 - kolize v názvech v rámci stromu. Do jaké míry je zaručeno, že stejné názvy nikdy nebudou ve stejné úrovni stromu? Pokud to nelze zaručit, jakým způsobem by jste váš algoritmus upravil?
Na jakém stroji jste vaši implementaci testoval? Jaké testy jste použil?
doc. Ing. Petr Matoušek, Ph.D., M.A. (předseda)
Dr. Ing. Petr Peringer (člen)
Ing. Matěj Grégr, Ph.D. (člen)
doc. Ing. Michal Španěl, Ph.D. (člen)
Ing. Lukáš Kekely, Ph.D. (člen)
V rámci bakalářské práce bylo vytvořeno nové konfigurační API open-source knihovny libnetconf2 a toto rozhraní bylo úspěšně integrováno do produkční verze uvedené knihovny, která je využívána i velkými telekomunikačními operátory. Řešení bakalářské práce probíhalo na pravidelné bázi a bylo ukončeno v dostatečném předstihu tak, aby bylo možné řádně zkonzultovat její výstupy. Nad rámec zadání student přispěl i do dalších relevantních open-source projektů. S prací studenta jsem tudíž velmi spokojen a navrhuji hodnocení bakalářské práce stupněm výborně / A.
Kritérium hodnocení
Slovní hodnocení
Informace k zadání
Cílem bakalářské práce byla realizace nového konfiguračního API široce využívané open-source knihovny libnetconf2, která je vyvíjena sdružením CESNET. Náročnost zadání spočívala především v požadavku na vysokou kvalitu implementačních výstupů bakalářské práce, bez které by nebylo možné je integrovat do knihovny, jež je produkčně využívána komerčními společnostmi, včetně velkých telekomunikačních operátorů. I přes tuto náročnost byly všechny body zadání úspěšně naplněny.
Práce s literaturou
Student si sám aktivně dohledával studijní materiály a v rámci bakalářské práce využíval relevantní zdroje (především RFC dokumenty).
Aktivita během řešení, konzultace, komunikace
Po celou dobu řešení bakalářské práce byl student aktivní, průběžně posouval úkoly související s bakalářskou prací kupředu a pravidelně konzultoval svůj postup s odborným konzultantem Mgr. Michalem Vaškem ze sdružení CESNET,
Aktivita při dokončování
Práce byla dokončena v dostatečném předstihu, což umožnilo detailně zkonzultovat všechny její části.
Publikační činnost, ocenění
Výstupy bakalářské práce byly úspěšně integrovány do veřejného repozitáře open-source knihovny libnetconf2. Nad rámec zadání byly v rámci řešení bakalářské práce navrženy opravy chyb v open-source projektu libssh a změny v návrhu modelu ietf-netconf-server. Oba tyto příspěvky již byly příslušnými komunitami přijaty a začleněny.
Jedná se o velmi zdařilou bakalářskou práci. Student zde prokázal rozsáhlé znalosti a zkušenosti v oblasti návrhu a implementace software. Vytvořené výstupy jsou na velmi vysoké úrovni a používané v praxi. Student se navíc osobně podílel na vylepšení ietf-netconf modelu, včetně identifikace chyb v knihovně libssh. Jedinou výtku mám k technické zprávě, která je pro čtenáře hůře pochopitelná a má určité nedostatky na jazykové úrovni. S ohledem na tyto skutečnosti navrhuji hodnocení stupněm velmi dobře (B).
Kritérium hodnocení
Slovní hodnocení
Body
Náročnost zadání
Stupeň hodnocení: průměrně obtížné zadání
Cílem práce bylo navrhnou a implementovat konfigurační rozhraní síťového zařízení dle modelu ietf-netconf-server. Zadání považuji za průměrně obtížné.
Prezentační úroveň technické zprávy
Struktura technické zprávy je v pořádku. K textu zprávy mám však následující výhrady:
horší pochopitelnosti textu pro čtenáře,
chybí mi definice problému v návrhové části,
v části implementace se pak autor dodatečně vrací k dodefinování některých částí řešené úlohy.
70
Formální úprava technické zprávy
Typografická stránka práce je na dobré úrovni. Výhrady bych měl k jazykové stránce práce. Student místy používá skoro hovorový způsob vyjadřování. Některé kapitoly popisují spíše proces vývoje namísto samotného technického řešení.
65
Realizační výstup
Výstupem práce jsou kódy v jazyce C popisující konfigurační API knihovny libnetconf2. Tyto kódy jsou publikovány ve formě open-source, jsou plně funkční a student na ně získal dokonce i zpětnou vazbu od samotných uživatelů.
100
Využitelnost výsledků
Jedná se o práci kompilačního charakteru, která je však na velmi vysoké úrovni a již se používá i v praxi.
Rozsah splnění požadavků zadání
Stupeň hodnocení: zadání splněno a práce obsahuje podstatná rozšíření
Zadání práce bylo splněno ve všech bodech. Student se nad rámec zadání podílel i na vylepšení samotného ietf-netconf modelu, což znamenalo komunikaci přímo s autory. Navíc v průběhu vývoje identifikoval závažné chyby v knihovně libssh, které se následně podařilo odstranit.
Rozsah technické zprávy
Stupeň hodnocení: je v obvyklém rozmezí
Práce s literaturou
Převážná část literárních zdrojů se odkazuje na specifikace typu RFC, což je pro tento typ práce obvyklé a zpravidla i dostačující.
85
Otázky k obhajobě:
Diagram 5.1 - kolize v názvech v rámci stromu. Do jaké míry je zaručeno, že stejné názvy nikdy nebudou ve stejné úrovni stromu? Pokud to nelze zaručit, jakým způsobem by jste váš algoritmus upravil?