Bachelor's Thesis

XDP Driver for NDK Platform

Final Thesis 1 MB

Author of thesis: Bc. Richard Hyroš

Acad. year: 2024/2025

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

Reviewer: Ing. Lukáš Kekely, Ph.D.

Abstract:

When trying to achieve high internet speeds, the CPU becomes a limiting factor. One of the most CPU-intensive parts of packet processing is sending packets through the Linux kernel network stack. Using this part of the operating system, which implements the L3 and L4 protocols and much more, is a trade of performance for convenience. That is why the technologies that circumvent the network stack emerged over time. These technologies usually take the whole packet processing to the user-space. In contrast, XDP (eXpress Data Path) is a technology that aims to achieve similar performance but still function as a part of the kernel itself by allowing the developer to decide early in the kernel network driver whether the packets should continue to the network stack, get filtered, or be redirected straight to the user-space. This driver implementation is the primary goal of this thesis.

Keywords:

XDP, AF_XDP, kernel driver, packet processing, Linux

Date of defence

16.06.2025

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

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á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.

Topics for thesis defence

  1. Jaký je aktuální stav a postup začlenění (Merge Request) vytvořené implementace do hlavní větve softwarového balíčku/repozitáře platformy NDK? Kdy očekáváte dokončení tohoto procesu?
  2. V kapitole 8.1 jsou uvedeny další identifikována rozšíření vytvořené implementace. Jsou některé z nich kritické pro praktické nasazení? Existuje plán s pořadím a časovým odhadem pro jejich postupnou realizaci?
  3. V kapitole 7 je vyhodnocení propustnosti realizováno na starší kartě se 100GbE síťovými porty a jen PCIe gen3. Je možné demonstrovat vyšší výkon XDP implementace na novější kartě se 400GbE portem a PCIe gen4 nebo gen5?
  4. Kolikrát, přibližně, bylo při ladění implementace XDP řadiče dosaženo kernel panic stavu OS nebo zaseknutí PCIe sběrnice počítače?
  5. Jaká byla zpětná vazba z konference?
  6. Z pohledu stability, testoval jste na reálném provozu?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. RNDr. Milan Češka, Ph.D. (předseda)
Ing. Zbyněk Křivka, Ph.D. (člen)
Ing. Zdeněk Materna, Ph.D. (člen)
doc. Ing. Jan Kořenek, Ph.D. (člen)
Ing. Jaroslav Rozman, Ph.D. (člen)

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

Bakalářskou práci považuji za nadstandardní jak rozsahem vykonaných prací, tak kvalitou implementovaných programových výstupů. To ostatně potvrzuje i přijetí Lightning Talku na konferenci TNC25. Jedinou drobnou vadou na kráse je tak technická zpráva, která by si ještě zasloužila o trochu víc pozornosti. I přesto hodnotím bakalářkou práci známkou A.

Evaluation criteria Verbal classification
Information about assignment

Cílem této bakalářské práce bylo implementovat podporu technologie XDP v softwarové části platformy NDK vyvíjené sdružením CESNET. Zavedení této technologie přitom vyžadovalo úpravu nejen v ovladači zařízení využívajících platformu NDK, ale také v softwarových nástrojích využívajících tento ovladač. Spolu s požadavkem na srovnání parametrů implementovaného ovladače s obdobnými implementacemi tak zadání bakalářské práce značně přesahuje běžný rozsah. I přesto bylo zadání kompletně splněno, takže jsem s dosaženými výsledky velmi spokojen.

Work with literature

Od výběru až po využití student pracoval s uvedenými literárními zdroji zcela samostatně.

Activity during solution, consultations, communication

Student na tématu průběžně pracoval již od loňského léta a po celou tuto dobu byl v úzkém kontaktu s odborným konzultantem ze sdružení CESNET. Na konzultace byl vždy řádně připraven.

Activity during completion

Technická zpráva byla dokončována na poslední chvíli, ale i tak se podařilo zrealizovat alespoň jedno kolo komentářů k její první kompletní verzi. Kromě značného rozsahu prací vyžadovaných zadáním vidím důvody pozdního dokončování především v přípravě na Lightning Talk k tématu bakalářské práce na konferenci TNC25 (viz níže), což považuji za dostatečně dobrý důvod.

Publication activity, awards

Student se s tématem řešeným v bakalářské práci zapojil do Future Talent Programme organizace GÉANT, v rámci něhož byl vybrán k prezentaci 5minutového Lightning Talku na konferenci TNC25, která se koná 9.-13. 6. 2025 v anglickém Brightonu.

Points proposed by supervisor: 98

Grade proposed by supervisor: A

Reviewer’s report
Ing. Lukáš Kekely, Ph.D.

Student vytvořil zajímavou implementaci řadiče XDP datových přenosů jako integrovanou součást open source softwarového vybavení FPGA akcelerační platformy NDK. Kvalitou a výkonem tato implementace nezaostává za realizacemi jiných datových rozhraní na této platformě. Praktické využití je tedy jednoduše možné. Slabším místem práce je textová zpráva, která by mohla být trochu delší a lépe zkontrolována. 


Celkově navrhuji hodnocení stupněm A za 90 bodů. 

Evaluation criteria Verbal classification Points
The difficulty of the assignment

Evaluation level: more difficult assignment

Student musel nastudovat, navrhnout a implementovat softwarový modul na úrovni jádra operačního systému Linux. Modul navíc přímo spolupracuje se specifickou hardwarovou platformou a zajišťuje realizaci DMA přenosů dat skrze PCIe sběrnici. Nejen samotná rozsáhlá realizace, ale zejména pak ladění takovéto implementace a její podrobné testování přímo vyžadováno zadáním není jednoduché. 

Presentation level of the technical report

Zpráva podrobně popisuje XDP rozhraní. Pak jen stručně zmíní vlastnosti NDK platformy a samotné jádro vlastního návrhu řešení. Hlavní objem textu se pak věnuje popisu implementace jednotlivých realizačních částí a jejich testování s vyhodnocením výsledků. Pro implementační práci je popsané rozdělení rozsahu žádoucí. Avšak, jak již bylo zmíněno, rozsáhlejší text v kapitolách 3 a 4 by práci vylepšil. Celkově návaznost kapitol odpovídá bodům zadání, jednoduše se sleduje a čtenář je veden k jasným závěrům zamýšleným autorem. 

85
Formal preparation of a technical report

Práce je napsané v angličtině na dostatečně kvalitní úrovni. Po typografické stránce bych doporučil odstranění osamocených slov na novém řádku (např. obrázky 2.1 a 2.5 v seznamu nebo první věta kapitoly 4). Z jazykové stránky bych doporučil kontrolu pravopisu a překlepů (např. rovnou nadpisy 7.1.2, 7.2.3 a 7.3.1) spolu s podrobným přečtením textu a doplněním omylem vynechaných slov (např. "For visualization, the plot of L2 speeds is chosen Figure 7.1."). Celkově takto text práce zbytečně působí dojmem dopsání na poslední chvíli bez adekvátní kontroly.

80
Realisation output

Výsledkem práce je implementace řadiče XDP API pro datové přenosy paketů mezi operační pamětí počítače a FPGA síťovou kartou NDK platformy. Součástí implementace jsou také uživatelské nástroje pro demonstraci použití tohoto rozhraní. Implementace byla otestována v kombinaci s cílovým hardware v podobě akceleračních síťových FPGA karet. Dosaženo je zároveň propustnosti dostatečné pro praktické vysokorychlostní nasazení na 100GbE a rychlejších sítích. Tento výkon je porovnatelný s existujícími implementacemi alternativních API datové cesty (NDP a DPDK).

100
Usability of results

Výsledná realizace bude součástí open source softwarového repozitáře platformy NDK, kde přidává zajímavou novou funkcionalitu. Praktické využití výsledků je možné v řešených výzkumných projektech sdružení Cesnet nebo v komerčním nasazení produktů společnosti DynaNIC. Doporučil bych také zkusit podat informaci o XDP podpoře v NDK a porovnání výkonu jednotlivých API datové cesty jako poster nebo student paper na vhodnou FPGA nebo síťovou konferenci.

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

Evaluation level: assignment fulfilled

Student splnil všechny body zadání. Zejména navrhl a implementoval XDP řadič včetně uživatelských nástrojů, které využil pro testování a měření propustnosti přenosů dat.

Extent of the technical report

Evaluation level: meets the minimum requirements only

Text práce má jen asi 41 normostran. Celkově je sice napsaný jasně a nic zásadního v něm nechybí. Ocenil bych ale vyšší míru detail v některých částech, zejména v teoretickém rozboru a návrhu. Konkrétně, kapitola 3 popisuje celou NDK platformu jen na dvou stranách nebo kapitola 4 vysvětluje jádro návrhu implementace také jen na dvou stranách.

Work with literature

Autor používá a cituje relevatní primární zdroje pro všechny potřebné technologie. Celkový počet referencí odpovídá standardu implementační bakalářské práce.

85
Topics for thesis defence:
  1. Jaký je aktuální stav a postup začlenění (Merge Request) vytvořené implementace do hlavní větve softwarového balíčku/repozitáře platformy NDK? Kdy očekáváte dokončení tohoto procesu?
  2. V kapitole 8.1 jsou uvedeny další identifikována rozšíření vytvořené implementace. Jsou některé z nich kritické pro praktické nasazení? Existuje plán s pořadím a časovým odhadem pro jejich postupnou realizaci?
  3. V kapitole 7 je vyhodnocení propustnosti realizováno na starší kartě se 100GbE síťovými porty a jen PCIe gen3. Je možné demonstrovat vyšší výkon XDP implementace na novější kartě se 400GbE portem a PCIe gen4 nebo gen5?
  4. Kolikrát, přibližně, bylo při ladění implementace XDP řadiče dosaženo kernel panic stavu OS nebo zaseknutí PCIe sběrnice počítače?
Points proposed by reviewer: 90

Grade proposed by reviewer: A

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