The list of possible topics for the current academic year are the following (more can be added if needed):
The GNS3 software is widely used to emulate physical networks, as it allows creating complex networks using real devices (e.g., Cisco boxes). However, the world is increasingly going toward softwarized infrastructures, i.e., network boxes are no longer controlled through CLI-based commands, but through SDN controllers.
This project aims at exploring whether an SDN controller can be added to the GNS3 environment, e.g., through a custom virtual machine (e.g., help at this link). This would require to set up a proper VM image acting as a SDN controller, and adding to GNS3. In addition, the proper lightweight SDN controller should be selected (e.g., Ryu, and proper images of network devices should be installed that support the interaction of modern SDN-oriented protocols (e.g., NetCONF).
The project will create a final demonstrator in which a simple user-created software interfaces with the SDN controller, and changes the status of some of the network devices running in GNS3.
Student: XXX; tutor: Fulvio Risso, Davide Miola
eBPF and io_uring are two of the most influential additions to the Linux kernel for networking. eBPF marks a generational shift, making the kernel programmable and allowing custom network functions to be offloaded and run directly in kernel space. io_uring rethinks asynchronous I/O, offering better performance and a more usable interface than traditional APIs. Although the two technologies are closely related in spirit, they have so far developed mostly independently, with few opportunities to combine them. Linux 7.1 changes this by introducing two eBPF kfuncs that bridge the gap and open the door to new use cases.
In this project, the student will first build a solid understanding of both eBPF and io_uring and of the role each plays in modern high-performance software. Building on this foundation, the student will study the new kfuncs in depth and develop sample applications that demonstrate the capabilities they unlock, such as generating and terminating traffic directly from eBPF or accessing the file system from eBPF programs. The project will possibly culminate in one or more higher-level applications that showcase the integration end to end, for example a web server that runs entirely within the kernel.
Student: XXX; tutor: Davide Miola, Fulvio Risso