1- # Next-Gen SDN Tutorial
1+ # Next-Gen SDN Tutorial (Advanced)
22
33Welcome to the Next-Gen SDN tutorial!
44
5- This tutorial is targeted at developers who want to learn about the building
6- blocks of the NG-SDN architecture, such as:
5+ This tutorial is targeted at students and practitioners who want to learn about
6+ the building blocks of the next-generation SDN ( NG-SDN) architecture, such as:
77
88* Data plane programming and control via P4 and P4Runtime
99* Configuration via YANG, OpenConfig, and gNMI
10- * Stratum
11- * ONOS
12-
13- The tutorial is organized around a sequence of hands-on exercises that show how
14- to build an IPv6-based leaf-spine data center fabric using P4, Stratum, and
15- ONOS.
10+ * Stratum switch OS
11+ * ONOS SDN controller
12+
13+ Tutorial sessions are organized around a sequence of hands-on exercises that
14+ show how to build a leaf-spine data center fabric based on IPv6, using P4,
15+ Stratum, and ONOS. Exercises assume an intermediate knowledge of the P4
16+ language, and a basic knowledge of Java and Python. Participants will be
17+ provided with a starter P4 program and ONOS app implementation. Exercises will
18+ focus on concepts such as:
19+
20+ * Using Stratum APIs (P4Runtime, gNMI, OpenConfig, gNOI)
21+ * Using ONOS with devices programmed with arbitrary P4 programs
22+ * Writing ONOS applications to provide the control plane logic
23+ (bridging, routing, ECMP, etc.)
24+ * Testing using bmv2 in Mininet
25+ * PTF-based P4 unit tests
1626
1727## Slides
1828
1929Tutorial slides are available online:
20- < http://bit.ly/ngsdn-tutorial-slides >
30+ < http://bit.ly/ngsdn-tutorial-advanced >
2131
22- These slides provide an introduction to each exercise. We suggest you look at it
23- before starting to work on the exercises.
32+ These slides provide an introduction to the topics covered in the tutorial. We
33+ suggest you look at it before starting to work on the exercises.
2434
2535## System requirements
2636
37+ If you are taking this tutorial at an event organized by ONF, you should have
38+ received credentials to access the ** ONF Cloud Tutorial Platform** , in which
39+ case you can skip this section. Keep reading if you are interested in working on
40+ the exercises on your laptop.
41+
2742To facilitate access to the tools required to complete this tutorial, we provide
2843two options for you to choose from:
2944
@@ -99,7 +114,10 @@ tutorial, with a reliable Internet connection.
99114
100115During the exercises you will need to write code in multiple languages such as
101116P4, Java, and Python. While the exercises do not prescribe the use of any
102- specific IDE or code editor, the tutorial VM comes with Java IDE [ IntelliJ IDEA
117+ specific IDE or code editor, the ** ONF Cloud Tutorial Platform** provides access
118+ to a web-based version of Visual Studio Code (VS Code).
119+
120+ If you are using the tutorial VM, you will find the Java IDE [ IntelliJ IDEA
103121Community Edition] ( https://www.jetbrains.com/idea/ ) , already pre-loaded with
104122plugins for P4 syntax highlighting and Python development. We suggest using
105123IntelliJ IDEA especially when working on the ONOS app, as it provides code
@@ -130,7 +148,7 @@ the exercises, here's a quick reference:
130148| ` make p4-test ` | Run PTF tests |
131149| ` make start ` | Start Mininet and ONOS containers |
132150| ` make stop ` | Stop all containers |
133- | ` make reset ` | Stop containers and remove any state associated |
151+ | ` make restart ` | Restart containers clearing any previous state |
134152| ` make onos-cli ` | Access the ONOS CLI (password: ` rocks ` , Ctrl-D to exit)|
135153| ` make onos-log ` | Show the ONOS log |
136154| ` make mn-cli ` | Access the Mininet CLI (Ctrl-D to exit) |
@@ -143,10 +161,13 @@ the exercises, here's a quick reference:
143161
144162Click on the exercise name to see the instructions:
145163
146- 1 . [ P4 and P4Runtime basics] ( ./EXERCISE-1.md )
164+ 1 . [ P4Runtime basics] ( ./EXERCISE-1.md )
147165 2 . [ Yang, OpenConfig, and gNMI basics] ( ./EXERCISE-2.md )
148166 3 . [ Using ONOS as the control plane] ( ./EXERCISE-3.md )
149- 4 . [ Modify code to enable IPv6 routing] ( ./EXERCISE-4.md )
167+ 4 . [ Enabling link discovery via P4Runtime packet I/O] ( ./EXERCISE-4.md )
168+ 5 . [ Implementing L2 Bridging] ( ./EXERCISE-5.md )
169+ 6 . [ Implementing IPv6 routing with ECMP] ( ./EXERCISE-6.md )
170+ 7 . [ Implementing SRv6] ( ./EXERCISE-7.md )
150171
151172## Solutions
152173
0 commit comments