Please note! Course description is confirmed for two academic years, which means that in general, e.g. Learning outcomes, assessment methods and key content stays unchanged. However, via course syllabus, it is possible to specify or change the course execution in each realization of the course, such as how the contact sessions are organized, assessment methods weighted or materials used.

LEARNING OUTCOMES

  • Basic knowledge on legacy networking principles
  • Understanding of fundamental routing algorithms and principles
  • Understanding of needs for Software Defined Networking (SDN)
  • Understanding of different SDN controllers and different SDN protocols & mechanisms
  • Understanding the difference between legacy networks and SDN-based networks, and their interworking
  • Understanding the underlay and overlay network concepts
  • Developing hands-on experience on management of SDN-enabled networks
  • Developing hands-on experience on SDN ONOS and OpenAPI platforms
  • Developing hands-on experience on Service Function Chaining (SFC) and SDN-based system orchestration

Credits: 5

Schedule: 12.01.2021 - 12.04.2021

Teacher in charge (valid 01.08.2020-31.07.2022): Miloud Bagaa, Tarik Taleb

Teacher in charge (applies in this implementation): Tarik Taleb

Contact information for the course (valid 04.01.2021-21.12.2112):

  • Hireche Othmane <othmane.hireche@aalto.fi>
  • Taleb Tarik <tarik.taleb@aalto.fi>

CEFR level (applies in this implementation):

Language of instruction and studies (valid 01.08.2020-31.07.2022):

Teaching language: English

Languages of study attainment: English

CONTENT, ASSESSMENT AND WORKLOAD

Content
  • Valid 01.08.2020-31.07.2022:

    This course covers principles of legacy routing and Software-Defined Networking (SDN), an important cornerstone of the 5G and beyond network systems. This course also envelops theoretical and practical aspects of SDN, showcasing the different existing SDN protocols and controllers, with focus on ONOS and OpenFlow as SDN controller and SDN protocol, respectively. This course also shows the utilization of Linux namespace and Linux containers, as well as the installation and configuration of Mininet and its integration with the physical network. Last but not the least, this course also covers the network troubleshooting by leveraging the Wireshark tool. Using the latter, the student will be able to leverage OpenFlow filters integrated with Wireshark for capturing different OpenFlow messages exchanged in the network. Finally, in this course, the student will be able to develop an SDN orchestrator that leverages the SDN technology for enabling the Service Function Chaining (SFC) concept.

  • Applies in this implementation:

    Course connections on:

    • The course is in the “Internet
      Technologies” Study track, as part of the “Communications Engineering” Major,
      as part of the Master's Programme in Computer, Communication and Information
      Sciences
    • Students need to have
      • Basic
        understanding of Internet, networks and communication protocols
      • Basic
        understanding of algorithms and mechanisms
      • Basic
        understanding of Restful API
      • Basic
        programming skills in Python and Shell scripting
    • Students need to have
      • Own
        laptop, preferably with Ubuntu as operating system
    • The course provides knowledge useful
      and of relevance to other courses in the same study track. These courses
      include

      • ELEC-E7120
          Wireless Systems
      • ELEC-E7320   Internet Protocols
      • ELEC-E7330   Laboratory Course in Internet Technologies             


Assessment Methods and Criteria
  • Valid 01.08.2020-31.07.2022:

    In-class quizzes, practical assignments and final examination

  • Applies in this implementation:

    • In/after-class Quizzes (30% of course grade)
      • Short
        Quiz consisting of multiple-choice questions that sum up the main
        take-away of the relevant session.
    • Practical Assignments – Active participation to
      the obligatory SDN experiments (40% of course grade)
      • Each student will make different demos
        individually and report on them.
    • Final Examination (30% of course grade)
      • Consisting
        of multiple-choice questions, similar in fashion to the in-class quizzes.

Workload
  • Valid 01.08.2020-31.07.2022:

    Contact hours 24 h
    Independent learning: 99 h
    Examination 3 h  
    (24 + 99 should be 123 hours)

DETAILS

Study Material
  • Applies in this implementation:

    • Lectures using
      PPT slides
    • Practical assignments
      during the lecture and also as homework
    • Reading
      materials


Substitutes for Courses
  • Valid 01.08.2020-31.07.2022:

    ELEC-E7310

Prerequisites
  • Valid 01.08.2020-31.07.2022:

    • Basic understanding of Internet, networks and communication protocols
    • Basic understanding of algorithms and mechanisms
    • Basic understanding of Restful API
    • Basic programming skills in Python and Shell scripting

Registration for Courses
  • Valid 01.08.2020-31.07.2022:

    WebOodi

  • Applies in this implementation:

    Content

    This course covers principles of legacy routing and Software-Defined
    Networking (SDN), an important cornerstone of the 5G and beyond network systems.
    This course also envelops theoretical and practical aspects of SDN, showcasing
    the different existing SDN protocols and controllers, with focus on ONOS and
    OpenFlow as SDN controller and SDN protocol, respectively. This course also

    shows the utilization of Linux namespace and Linux containers, as well
    as the installation and configuration of Mininet and its integration with the
    physical network. Last but not the least, through this course, students will be
    able to develop an SDN orchestrator that leverages the SDN technology for
    enabling the Service Function Chaining (SFC) concept.

    Table of Contents

    I. Introduction and general background.

    I.1 CIDR – Classless Inter-Domain
    Routing.

    I.2 Network Address
    Translation.

    I.3 Local Area Networks:
    Network topology and spanning tree.

    I.4
    Routing Algorithms: Distance vector vs link state.

    II. Software Defined Networking Fundamentals.

    II.1 SDN Architecture.

    II.2 SDN controllers and their
    brief comparison.

    II.3 SDN-enabled switches,
    OpenFlow protocol, and OpenFlow pipeline processing.

    II.4 Flow tables, flow
    entries, instructions, and action sets.

    II.5 Study case: SDN-enabled
    switch, Open vSwitch.

    III Mininet: an SDN emulator.

    III.1 Mininet and the motivation behind its use.

    III.2 Installation guide for Mininet.

    III.3 Introduction to the
    Mininet CLI.

    III.4 Introduction to the
    Mininet “Python API”.

    III.5 Integrating external SDN
    controllers with Mininet.

    III.6 Mininet applications.

    III.7 Demonstration:
    Mininet an SDN emulator.

    IV OpenFlow-based forwarding.

    IV.1 Traditional forwarding
    versus OpenFlow forwarding.

    IV.2 Proactive versus reactive
    flow entries in OpenFlow.

    IV.3 Demonstration: ONOS
    and Linux namespace.

    IV.4 Demonstration:
    ONOS and Linux containers.

    IV.5 Demonstration:
    OpenFlow flow tables.

    V ONOS-based orchestration system.

    V.1 ONOS Intents framework.

    V.2 ONOS internal
    capabilities.

    V.3ONOS
    access methods.

    V.4 ONOS Command Line
    Interface (CLI).

    V.5 ONOS RESTful Interface.

    V.6 ONOS Application-based
    control.

    V.7 CLI Interface vs RESTful
    Interface.

    V.8 Demonstration:
    Using ONOS RESTful API interface to manage hosts, devices,                                                    applications
    and settings.

    V.9 Demonstration:
    Using ONOS RESTful API to filter, mirror, and forward        networking traffic based on OpenFlow
    capabilities.

    V.10 Demonstration:
    Using ONOS RESTful API to filter, mirror, and forward networking traffic based
    on ONOS’s Intents framework.

    V.11 Demonstration:
    Using ONOS RESTful API, Linux containers, and Intent-based networking to
    orchestrate SFC.

    VI Programming
    Protocol-Independent Packet Processors (P4).

    VI.1 Motivation behind adopting P4.

    VI.2 P4 Definition.

    VI.3 P4 Environment.

    VI.4 P4 Target.

    VI.5 P4 Architecture Model.

    VI.6 P4 Programmable blocks
    and programs.

    VI.7 P4 Use cases.

    VI.8
    Demonstration: Introduction to P4.

     

     


SDG: Sustainable Development Goals

    9 Industry, Innovation and Infrastructure

FURTHER INFORMATION

Further Information
  • Valid 01.08.2020-31.07.2022:

    Students are recommended to use their own laptops with Ubuntu as operating system. Ubuntu running in a virtual machine is also fine.

  • Applies in this implementation:

    Content

    This course covers principles of legacy routing and Software-Defined
    Networking (SDN), an important cornerstone of the 5G and beyond network systems.
    This course also envelops theoretical and practical aspects of SDN, showcasing
    the different existing SDN protocols and controllers, with focus on ONOS and
    OpenFlow as SDN controller and SDN protocol, respectively. This course also

    shows the utilization of Linux namespace and Linux containers, as well
    as the installation and configuration of Mininet and its integration with the
    physical network. Last but not the least, through this course, students will be
    able to develop an SDN orchestrator that leverages the SDN technology for
    enabling the Service Function Chaining (SFC) concept.

    Table of Contents

    I. Introduction and general background.

    I.1 CIDR – Classless Inter-Domain
    Routing.

    I.2 Network Address
    Translation.

    I.3 Local Area Networks:
    Network topology and spanning tree.

    I.4
    Routing Algorithms: Distance vector vs link state.

    II. Software Defined Networking Fundamentals.

    II.1 SDN Architecture.

    II.2 SDN controllers and their
    brief comparison.

    II.3 SDN-enabled switches,
    OpenFlow protocol, and OpenFlow pipeline processing.

    II.4 Flow tables, flow
    entries, instructions, and action sets.

    II.5 Study case: SDN-enabled
    switch, Open vSwitch.

    III Mininet: an SDN emulator.

    III.1 Mininet and the motivation behind its use.

    III.2 Installation guide for Mininet.

    III.3 Introduction to the
    Mininet CLI.

    III.4 Introduction to the
    Mininet “Python API”.

    III.5 Integrating external SDN
    controllers with Mininet.

    III.6 Mininet applications.

    III.7 Demonstration:
    Mininet an SDN emulator.

    IV OpenFlow-based forwarding.

    IV.1 Traditional forwarding
    versus OpenFlow forwarding.

    IV.2 Proactive versus reactive
    flow entries in OpenFlow.

    IV.3 Demonstration: ONOS
    and Linux namespace.

    IV.4 Demonstration:
    ONOS and Linux containers.

    IV.5 Demonstration:
    OpenFlow flow tables.

    V ONOS-based orchestration system.

    V.1 ONOS Intents framework.

    V.2 ONOS internal
    capabilities.

    V.3ONOS
    access methods.

    V.4 ONOS Command Line
    Interface (CLI).

    V.5 ONOS RESTful Interface.

    V.6 ONOS Application-based
    control.

    V.7 CLI Interface vs RESTful
    Interface.

    V.8 Demonstration:
    Using ONOS RESTful API interface to manage hosts, devices,                                                    applications
    and settings.

    V.9 Demonstration:
    Using ONOS RESTful API to filter, mirror, and forward        networking traffic based on OpenFlow
    capabilities.

    V.10 Demonstration:
    Using ONOS RESTful API to filter, mirror, and forward networking traffic based
    on ONOS’s Intents framework.

    V.11 Demonstration:
    Using ONOS RESTful API, Linux containers, and Intent-based networking to
    orchestrate SFC.

    VI Programming
    Protocol-Independent Packet Processors (P4).

    VI.1 Motivation behind adopting P4.

    VI.2 P4 Definition.

    VI.3 P4 Environment.

    VI.4 P4 Target.

    VI.5 P4 Architecture Model.

    VI.6 P4 Programmable blocks
    and programs.

    VI.7 P4 Use cases.

    VI.8
    Demonstration: Introduction to P4.