Programmable networks

Course objectives

General Objectives. The course aims to provide students with an overview of network programmability, introducing the main architectures and enabling technologies. Through frontal teaching and practical exercises, students will be able to configure network devices, design and implement network management automation applications, develop control applications, and define new packet processing logics. Specific Objectives. Knowledge and understanding: Understanding of the main architectures supporting programmable networks, including the functions performed by different logical blocks. Application of knowledge and understanding: Ability to design and develop network control applications, network automation, and packet processing pipelines. Critical and judgmental abilities: Ability to critically analyze the cost/benefit relationship regarding the use of centralized control architectures, reactive or proactive approaches, physical or virtualized network functions. Communicative skills: Through group activities carried out in the classroom and the completion of the exam project, students will acquire the ability to illustrate the logic of operation of the various developed network functions, as well as explain how these can integrate with various architectural elements. Learning abilities: The course provides students with a structured and systematic vision of the various points of programmability in a network infrastructure, as well as commonly used architectures. This knowledge will enable students to easily understand the role of network programmability even in application scenarios not covered in the course.

Channel 1
MARCO POLVERINI Lecturers' profile

Program - Frequency - Exams

Course program
The program is divided in tehoretical lessons and practical activities. Topics covered in the tehoretical lessons: - networking basics [2h] - introduction to programmable networks [2h] - Software Defined Networking [4h] - Network Function Virtualization [4h] - programmable Data Plane [4h] - P4 [4h] - Network Slicing [2h] - Service Function Chaining [2h] - Segment Routing [4h] Topics covered in the practical activities: - Network virtualization: Linux namespaces and virtual switches [4h] - introduction to containers: Docker e Kubernetes [4h] - SDN app design and development [12h] - data plane programming with BMv2 switchs [12h]
Prerequisites
Basic understanding of Computer Networking (including IP/TCP suite), object oriented programming skills
Books
The adopted textbook is the following one: CNIT Technical Report-06: Network Programmability: a (r)evolutionary approach. Editori: Giuseppe Bianchi, Walter Cerroni e Sergio Palazzo. Disponibile su: https://www.texmat.it/collana-cnit.html Teaching materia available on the Moodle page of the course
Frequency
Optional
Exam mode
The theoretical aspects are evaluated through an oral exam, while the practical aspects are evaluated through the assignment of a project
Lesson mode
In person teaching
  • Lesson code10606936
  • Academic year2025/2026
  • CourseEngineering in Computer Science and Artificial Intelligence
  • CurriculumSingle curriculum
  • Year1st year
  • Semester2nd semester
  • SSDING-INF/03
  • CFU6