Bachelor's Thesis

Implementace podpory privátních kandidátních úložišť dat v projektu Netopeer2

Final Thesis 712.26 kB

Author of thesis: Bc. Juraj Budai

Acad. year: 2025/2026

Supervisor: Ing. Jiří Matoušek, Ph.D.

Reviewer: Ing. Marcela Zachariášová, Ph.D.

Abstract:

This thesis focuses on the design and implementation of a private candidate datastore in the environment of the NETCONF configuration protocol. The aim of the thesis is to eliminate the limitations of the standard shared candidate datastore, in particular the overwriting of previously made changes in the candidate datastore and unintended commits of changes performed by another client. The proposed solution is based on extending the behavior of the NETCONF server Netopeer2 and enhancing the Sysrepo library. The implementation enables the creation of an isolated candidate datastore bound to individual NETCONF sessions and its subsequent commit to the running datastore. The result of this work is a mechanism supporting parallel configuration without mutual interference. The main contribution of this thesis is the extension of practical NETCONF usage possibilities in multi-client environments.

Keywords:

configuration, Private Candidate Datastores, Netopeer2, sysrepo, NETCONF, YANG

Date of defence

18.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaCznamka

Grading

C

Process of defence

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ázku oponenta. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položenou otázku rozhodla práci hodnotit stupněm C.

Topics for thesis defence

  1. Predpokladám, že testy uvažujú ručne vkladané zmeny. Alebo je možné vkladať zmeny náhodne? 

Language of thesis

Slovak

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Dr. Ing. Dušan Kolář (předseda)
doc. Ing. Vladimír Janoušek, Ph.D. (místopředseda)
Ing. Radek Hranický, Ph.D. (člen)
Ing. Jiří Matoušek, Ph.D. (člen)
Ing. Zdeněk Materna, Ph.D. (člen)

Supervisor’s report
Ing. Jiří Matoušek, Ph.D.

Ačkoliv se zadání bakalářské práce zpočátku zdálo být relativně přímočarým, student se v průběhu jeho plnění zvládl vypořádat jak s nečekanými implementačními obtížemi, tak očekávanými nástrahami integrace vytvořeného výstupu do produkčně používané knihovny Sysrepo a NETCONF serveru Netopeer2. Je tedy škoda, že se těmto překonaným překážkám více nevěnuje odevzdaná technická zpráva. Z pohledu vedoucího práce však hodnotím především přístup studenta v průběhu celého řešení bakalářské práce a ten si z mého pohledu zaslouží hodnocení výborně / A.

Evaluation criteria Verbal classification
Information about assignment

Cílem bakalářské práce bylo implementovat draft připravovaného standardu IETF pro NETCONF a RESTCONF privátní kandidátní úložiště dat v rámci open-source knihovny Sysrepo a open-source NETCONF serveru Netopeer2, které spravuje sdružení CESNET. Na začátku řešení bakalářské práce bylo zadání považování za průměrně obtížné s tím, že hlavní výzvou bude úspěšné začlenění implementovaných rozšíření do projektů, které jsou široce používány i v komerčním prostředí (telekomunikační operátoři typu Deutsche Telekom, výrobci komunikačních zařízení typu Nokia, aj.). V průběhu řešení se však naplno odhalila i technická náročnost zadání, kdy si implementace navržených rozšíření vyžádala koncepční změnu přístupu k implementaci úložišť dat v knihovně Sysrepo. Studentovi se však podařilo úspěšně se vypořádat jak s těmito dodatečně odhalenými komplikacemi, tak se začleněním výsledné práce do produkčně využívaných open-source projektů. Zadání bakalářské práce tak bylo zcela splněno.

Work with literature

Student pracoval s dostupnými studijními materiály převážně samostatně. Jeho prvotní nasměrování na relevantní zdroje zajistil Mgr. Michal Vaško ze sdružení CESNET (hlavní vývojář v projektech Sysrepo a Netopeer2), který byl odborným konzultantem této práce.

Activity during solution, consultations, communication

Student byl přiměřeně aktivní po celou dobu řešení bakalářské práce a svůj postup průběžně konzultoval s odborným konzultantem ze sdružení CESNET. Implementační a ladicí práce byly dokončeny v dostatečném předstihu.

Activity during completion

První kompletní verze technické zprávy byla dokončena v dostatečném předstihu na to, aby stihla projít jednou úplnou revizí. Finální verze technické zprávy však byla s ohledem na dostupný čas před termínem odevzdání bakalářské práce revidována pouze částečně.

Publication activity, awards

Implementační výstupy bakalářské práce byly začleněny do open-source projektů knihovny Sysrepo a NETCONF serveru Netopeer2, které spravuje sdružení CESNET.

Points proposed by supervisor: 90

Grade proposed by supervisor: A

Práca sa venuje aktuálnej problematike podpory privátnych kandidátnych dátových úložísk v prostredí Sysrepo a Netopeer2. Pozitívne hodnotím praktický prínos riešenia a jeho integráciu do existujúcich open-source projektov. Oceňujem tiež, že ide o jednu z prvých implementácií plánovaného rozšírenia štandardu NETCONF.


Autor preukázal schopnosť orientácie v komplexnej problematike NETCONF, YANG a architektúr úložísk a implementoval funkčné riešenie vrátane základných testov konfliktov a synchronizácie konfigurácie.


Za slabšiu stránku práce považujem najmä kvalitu a rozsah testovania. Testy sú prevažne scenárové a chýba systematickejšia evaluácia robustnosti, škálovateľnosti a limitácií navrhnutého riešenia. Práca zároveň obsahuje viaceré typografické a formálne nedostatky.


Napriek uvedeným pripomienkam práca spĺňa požiadavky kladené na bakalársku prácu a odporúčam ju na obhajobu s hodnotením C.

Evaluation criteria Verbal classification Points
The difficulty of the assignment

Evaluation level: moderately difficult assignment

Práca rieši prevažne implementačný a integračný problém, využíva známe princípy synchronizácie a riešenia konfliktov. Hlavný prínos spočíva v adaptácii týchto princípov do prostredia Sysrepo/Netopeer2, kde modelovanie dátových úložísk prebieha v špecializovanom jazyku YANG. 

Presentation level of the technical report

Z pohľadu logickej štruktúry by som uvítala jasnejšie oddelenie návrhu od implementácie.

Miestami sa informácia v texte opakuje. Hlavne v teoretickom úvode.

Na strane 30 je veta: ..dochádza k modifikácii uzlov počas prechádzania stromu, čo komplikuje proces spracovania a vyhodnotenia konfliktov, ako je znázornené na obr. 5.1. Ale podľa mňa obrázok zachytáva skôr výber stratégie riešenia konfliktov. S týmto súvisí, že identifikované problémy zo strany 30 by si v práci zaslúžili väčšiu názornost v podobe príkladu a postupného demoštrovania problémov a ich riešení. 

65
Formal preparation of a technical report

Práca obsahuje mnohé anglické výrazy, ktoré pôsobia miestami rušivo a mohli byť bez problémov preložené do slovenčiny. Hlavne nevidím dôvod, prečo študent používa termín "private candidate datastore" naprieč celou prácou, aj keď samotné zadanie termín prekladá ako "privátne kandidátne úložisko".

Niektorý demonstračné výpisy sú ďaleko od svojich referencí v texte (napr. 2.2) a niektoré výpisy ani referenciu v texte nemajú, napr. na strane 13, 14.

Nekonzistentné zvýrazňovanie akcii, dobre vidno napr. na strane 8 alebo 10. 

65
Realisation output

Realizačný výstup je integrovateľný do projektov Sysrepo a Netopeer2, navrhované riešenie mi príde vhodné.

Chýba mi ale systematickejšie testovanie výsledného riešenia, napriek tomu, že sú v práci zmienené viaceré funkčné testy, ako napr. testy detekcie konfliktov, riešenia konfliktov, integrácie do Netopeer2. S ohľadom na zameranie práce by ma zaujímalo, aké veľké záznamy sa testovali, existujúce limity na veľkosť záznamov, zanorenia submodulov, testované percento zmien s ohľadom na veľkosť záznamov a hĺbky zanorenia, atď.

70
Usability of results

Výsledky sú využiteľné v praxi, je to jedna z prvých implementácii plánovaného rozšírenia štandardu NETCONF o privátne kandidátne dátové úložiská. 

The extent to which the requirements of the assignment have been met

Evaluation level: assignment fulfilled

Všetky body zadania sú splnené.

Extent of the technical report

Evaluation level: is within the usual extent

Rozsah práce je v poriadku.

Work with literature

Literatúra je v poriadku, chýbala mi iba hlbšia analýza existujúcich riešení s ohľadom na identifikované problémy pri riešení konfliktov. 

75
Topics for thesis defence:
  1. 1. Predpokladám, že testy uvažujú ručne vkladané zmeny. Alebo je možné vkladať zmeny náhodne? 
Points proposed by reviewer: 70

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová