Software Networking


This course introduces the concept of “softwarized network,” i.e., novel network infrastructures in which the software plays an increasingly important role. Course topics include “traditional” software networking components such as the ones running in the control plane (in particular routing protocols), programmable data planes, and novel paradigms such as SDN/NFV and network orchestration. Finally, it will present the Linux networking stack, which is increasingly important due to the massive usage of this operating system in virtualized environments.

The course is taught in Italian, although most of the documentation is in English.

This course is available to all Computer Engineering (master-level degree) students at Politecnico di Torino. This site refers to Academic Year 2020/2021.


General knowledge about computer networks. Detailed knowledge about the IP protocol and the most important protocols of the TCP/IP suite. Capability to design IP networks and to manage static routing. Capability to analyze network traffic, particularly with respect to the most important protocols of the TCP/IP suite. Basic knowledge on computer architecture and operating systems.


The course is taught by Fulvio Risso and Marco Iorio.

To facilitate the interactions with the professors, we created a dedicated Slack workspace. Feel free to join at

Class recordings

Lectures of this class are registered and made available on the official teaching portal at Politecnico di Torino. Recordings are available only to enrolled students. Recording are made in a “best effort” way; some class recordings may not be available due to technical problems (e.g., a crash in professor's laptop) or for copyright problems (e.g., seminars given from non-Polito people).

Lab and exercises

This course includes four labs, focusing on the most important topics presented in the lectures. Routing labs will include configuration and troubleshooting of network devices, which is useful to understand how routing protocols react to external solicitations. Software labs will include creation of basic packet processing software (e.g., inspection of HTTP traffic) and service chains.

In addition, some exercises are available focusing on the most important topics of the course.

Labs represent a key helper to pass (successfully) the exam. Please note that the exam often includes some questions related to the lab.

Labs will be delivered through CrownLabs; please make sure you have a valid account.

Personal projects

Students with high average mark (>26/30) can ask to replace the exam with a special project. The project can focus either on research topics, or some teaching support activities. In most cases it requires a short presentation (30 mins) in which the student discusses the achieved results.

Due to the COVID-19 pandemic, we strongly suggest to select a project for the current academic year, which allow students to collaborate more with our research team and with other students. Hence, the threshold required for asking for a project is 26/30 (it was 27), projects are preferably carried on by two students (it was one project per student), and a final presentation is mandatory.

The list of proposed projects is available at the Project page.


Due to the COVID-19 pandemic, the exact exam procedure is not yet clear; we are working toward a mix between theoretical questions and practical skills.

In previous year, exam includes a variable mix of exercises, open-answer questions, and closed-answer questions.

Students whose grade exceeds a given threshold have the possibility to ask for an additional oral examination. This consists in one question, whose outcome can improve or worsen the grade of the written examination.

More details about exam rules are available in the slides presented at the beginning of the course.


Unfortunately no textbook is available for this course. Slides and labs will be delivered during the course are are available in the Syllabus page.