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 2018/2019.


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 Gabriele Castellano.

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 and homework are optional but strongly encouraged. In our experience, homework and labs represent a key helper to pass (successfully) the exam. Please note that the exam often includes some questions related to the lab exercises.

Personal projects

Students with high average mark (>27/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 we require a short presentation (30 mins) in which the student discusses the achieved results.

List of possible topics:

  • Design and initial operating setup of an OpenStack cluster
  • Tracing and profiling the Polycube network software framework
  • Securing the Polycube network software framework with authentication mechanisms
  • Securing the Polycube network software framework with automatic code analysis (e.g., Coverity)
  • Integrating monitoring primitives in the Polycube network provider for Kubernetes


Exam usually includes a variable mix of exercises, open-answer questions, and closed-answer questions. The texts of the previous exams are not available; student can be confident that exercises and questions are similar to the ones already given as part of the learning material.

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.

Previous years

This course is delivered in AY 2018/19 for the first time. A similar subject, with partially overlapping topics, was Routing Architecture and Protocols, which is no longer available this year.


Unfortunately no textbook is available for this course due to the novelty of the topics covered in this subject.