Specialization Software-defined Networking (Winter 2015/2016): Difference between revisions
Created page with "{{Announcement|Note: The exact dates of the course will be announced by end of October 2015.}} == Details == {{CourseDetails |credits=150h, 5 ECTS |module=M.Inf.1230: Specializa..." |
|||
| (108 intermediate revisions by one other user not shown) | |||
| Line 1: | Line 1: | ||
{{Announcement|Note: | {{Announcement|Note: We will have the final presentations on April 21: 8-12pm (in Room 2.101) and 16-18 (in Room 1.101) slot is additionally reserved }} | ||
{{Announcement|Note: | |||
In order to register, please subscribe to the mailing list "Sdn_course_16@gwdg.de" by subscribing at the following site (and write a message of the SDN course(s) that you plan to attend): | |||
https://listserv.gwdg.de/mailman/listinfo/sdn_course_16 }} | |||
== Details == | == Details == | ||
{{CourseDetails | {{CourseDetails | ||
|credits=150h, 5 ECTS | |credits=150h, 5 ECTS | ||
|module=M.Inf.1230: Specialization Software-defined Networks (SDN)); ITIS: 3.32 | |module=AI: M.Inf.1230: Specialization Software-defined Networks (SDN)); ITIS: 3.32 | ||
|lecturer=[https://www.net.informatik.uni-goettingen.de/people/mayutan_arumaithurai?lang=de Dr. Mayutan Arumaithurai] | |lecturer=[https://www.net.informatik.uni-goettingen.de/people/mayutan_arumaithurai?lang=de Dr. Mayutan Arumaithurai] | ||
|ta= | |ta=[https://www.net.informatik.uni-goettingen.de/people/sameer_kulkarni Sameer Kulkarni] | ||
|time=March | |time=March 21-25; 09.00-17.00 | ||
|place=IfI 2.101 | |place=IfI 2.101 | ||
|univz=tba | |univz=tba | ||
| Line 18: | Line 24: | ||
For all parts of the course, exercises will be provided, in which students must obtain at least 50% of the total points and active participation in the group discussions to be admitted to the examination of this course. The exam is taken by submitting a report of 10-15 pages summarizing the lessons learned during the lectures and exercises as well as the research papers investigated (a LaTeX template will be provided). Depending on the number of attendees, several parts will be conducted in teams of students. | For all parts of the course, exercises will be provided, in which students must obtain at least 50% of the total points and active participation in the group discussions to be admitted to the examination of this course. The exam is taken by submitting a report of 10-15 pages summarizing the lessons learned during the lectures and exercises as well as the research papers investigated (a LaTeX template will be provided). Depending on the number of attendees, several parts will be conducted in teams of students. | ||
[https://univz.uni-goettingen.de/qisserver/rds?state=verpublish&status=init&vmfile=no&publishid=180902&moduleCall=webInfo&publishConfFile=webInfo&publishSubDir=veranstaltung Link to UniVZ] | |||
==Schedule== | ==Schedule== | ||
{{Announcement|Note: We will have the final presentations on April 21: 8-12pm and 16-18 slot is additionally reserved }} | |||
{| {{Prettytable|width=}} | {| {{Prettytable|width=}} | ||
| Line 36: | Line 45: | ||
|- | |- | ||
|- | |- | ||
| align="right" | | | align="right" | 21`.03.2016 | ||
| Lecture I: Enhancing Data Plane | | Lecture I: Enhancing Data Plane | ||
| Exercise I: Data Center topology | | Exercise I: Data Center topology | ||
| Line 42: | Line 51: | ||
| Exercise II: Simple load balancer | | Exercise II: Simple load balancer | ||
|- | |- | ||
| align="right" | | | align="right" | 22.03.2016 | ||
| Lecture II: Northbound API | | Lecture II: Northbound API | ||
| Exercise III: Pox Firewall | | Exercise III: Pox Firewall | ||
| Line 48: | Line 57: | ||
| Exercise IV: Pyretic Firewall | | Exercise IV: Pyretic Firewall | ||
|- | |- | ||
| align="right" | | | align="right" | 23.03.2016 | ||
| Lecture III: Enhancing Data Plane - II | | Lecture III: Enhancing Data Plane - II | ||
| Exercise V: Kinetic | | Exercise V: Kinetic Firewalls | ||
| Group Discussion III | | Group Discussion III | ||
| Exercise VI: | | Exercise VI: pyretic debugging | ||
|- | |- | ||
| align="right" | | | align="right" | 24.03.2016 | ||
| | | Lecture IV: ONOS | ||
| Exercise | | Exercise VIII: ONOS tutorials | ||
| Group Discussion IV | | Group Discussion IV | ||
| Exercise IX: ONOS Applications | |||
| Exercise IX: | |||
|- | |- | ||
|} | |} | ||
== April 21: Schedule == | |||
{{Announcement|Note: Lets start at 8:30 instead of 8:00}} | |||
* 8:30-9:00: group presentation | |||
* 9:00-9:30: group presentation | |||
* 9:30-10:00: group presentation | |||
* 10:00-10:30: group presentation | |||
* 10:30-11:00: group presentation/Exercises/Q&A | |||
* 11:00-11:30: group presentation/Exercises/Q&A | |||
* 11:30-12:00: group presentation/Exercises/Q&A | |||
* 16:00-17:00: Exercises/Q&A | |||
* 17:00-17:30: Group presentation (Pouya & Mehdi) | |||
* 17:30-18:00: Exercises/Q&A | |||
==Requirements== | ==Requirements== | ||
| Line 76: | Line 95: | ||
** Short report on the group discussion papers | ** Short report on the group discussion papers | ||
** Report on the paper presented by team-X for the final presentation | ** Report on the paper presented by team-X for the final presentation | ||
== Lectures == | |||
* Lecture I: Enhancing Data Plane I [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Lectures/1.0-Middleboxes_basic.pdf slides-I][https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Lectures/1.1-Designing%20Middleboxes.pdf slides-II] | |||
* Special Lecture: How to Read (research) Papers [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Lectures/0.1-Group_Discussions.pdf slides-I][https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Lectures/howtoread.pdf Link_to_original_paper] | |||
* Lecture II: Northbound API [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Lectures/2.0-Northbound%20API%20Motivation.pdf slides-I] [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Lectures/2.1-Northbound%20API%20Pyretic.pdf slides-II] | |||
* Lecture III: Enhancing Data Plane II [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Lectures/1.2-Managing%20Middleboxes%20FlowTags.pdf Managing Middleboxes: Flowtags][https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Lectures/1.3-Managing%20Middleboxes%20Simplefying%20Steering%20FCSC.pdf Steering,Simplefying] | |||
* Lecture IV: ONOS: [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Lectures/ONOS.pdf ONOS] | |||
== Group Discussion == | |||
=== GD I === | |||
* Special Lecture: How to Read (research) Papers [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Lectures/0.1-Group_Discussions.pdf slides-I][https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Lectures/howtoread.pdf Link_to_original_paper] | |||
* [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/GD/0.GD-I-Debugging/SDN-traceroute.pdf SDN traceroute] | |||
=== GD II === | |||
* [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/GD/GD-II/a10-jyothi.pdf Towards a flexible data center fabric with source routing] | |||
* [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/GD/GD-II/pathlet.pdf pathlet] | |||
=== GD III === | |||
* [https://www.usenix.org/system/files/conference/nsdi16/nsdi16-paper-eisenbud.pdf Maglev (NSDI 2016)] | |||
* [http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p465.pdf Presto] | |||
=== GD IV === | |||
* [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/GD/GD-IV/splitmerge.pdf SplitMerge] | |||
* [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/GD/GD-IV/p163-gember-jacobson.pdf OpenNF] | |||
* [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/GD/GD-IV/shadowmac-hotsdn-2014-final.pdf ShadowMac] | |||
== Papers for Final Presentations == | |||
* Presentations will be from 8-12 on April 21. | |||
* Each group gets 20 minutes of presentation time and 10 minutes for Q&A. Georgios gets 10 minutes of presentation time and 5 minutes of Q&A. | |||
* [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/presentation/papers.zip All the papers can be downloaded here as a zip file] | |||
* NFV & security (Vijay, Mohsen) | |||
** [http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p199.pdf McTLS] | |||
** [http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p227.pdf Rollback Recovery of Middlebox] | |||
* Miscellaneous Papers - I (AHM, Luis) | |||
** [http://conferences.sigcomm.org/sosr/2016/papers/sosr_paper69.pdf CacheFlow] | |||
** [http://conferences.sigcomm.org/sosr/2016/papers/sosr_paper62.pdf Safe and Flexible Controller upgrades in SDN] | |||
* Miscellaneous Papers - II (Mahmoud, Amine) | |||
** [http://conferences.sigcomm.org/sosr/2016/papers/sosr_paper42.pdf Improving SDN with InSPired Swithes] | |||
** [http://conferences.sigcomm.org/sosr/2016/papers/sosr_paper70.pdf RAVEL] | |||
* Middlebox Optimization/Load balancers - I (Mehdi, Pouya) | |||
** [https://www.usenix.org/system/files/conference/nsdi16/nsdi16-paper-heorhiadi.pdf Simplifying SDN optimization using SOL] | |||
** [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/GD/Full_papers/CoMB-nsdi12.pdf CoMB: Design and Implementation of consolidated Middlebox architecture] | |||
* Middlebox Optimization/Load balancers - II (Osamah, Fazely) | |||
** [https://www.usenix.org/system/files/conference/nsdi16/nsdi16-paper-khalid.pdf Paving the way for NFV: Simplifying middlebox modifications Using StateAlyzr] | |||
** [http://dl.acm.org/citation.cfm?id=2396566 XoMB: Extensible Open Middleboxes with comodity servers] | |||
* SDN and Fault Tolerance: (Dieter, Ferdinand) | |||
** [http://conferences.sigcomm.org/sosr/2016/papers/sosr_paper57.pdf LegoSDN: Isolating and tolerating SDN application failures with LegoSDN] | |||
** [http://conferences.sigcomm.org/sosr/2016/papers/sosr_paper67.pdf Hula: scalable load balancing using programmable data planes. (NSDI 2016)] | |||
* Open vSwitch (Georgios) | |||
** [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/presentation/papers/nsdi15-Open-vSwitch.pdf The Design and Implementation of Open vSwitch] | |||
== Exercises == | |||
* [https://openflow.stanford.edu/display/ONL/POX+Wiki Pox/Openflow Tutorial] | |||
* What to Submit: source code along with screenshots for those who are not exempted | |||
=== General Hints === | |||
* Use the following option to get more debug info while using pox | |||
** $ ./pox/pox.py log.level --DEBUG misc.of_tutorial | |||
** NOTE: There are two "-" (i.e. --) used for options in mininet/pox. In the wiki, sometimes the two lines | |||
join up and show as one line. | |||
** Best not to use the command prompt within the VM, but to use terminals created by ssh (e.g. via Putty) | |||
*** e.g. xterm h1 doesn't work | |||
*** there were also issues while starting pyretic | |||
=== 21 March === | |||
* Get the Image from Mayutan/Sameer/peers | |||
==== Exercise I: Data Centers ==== | |||
[https://wiki.net.informatik.uni-goettingen.de/w/index.php?title=exercises_dc Exercise_DC] | |||
==== Exercise II: Load balancers ==== | |||
[https://wiki.net.informatik.uni-goettingen.de/w/index.php?title=exercises_lb Exercise_LB] | |||
=== 22 March === | |||
==== Exercise III: Firewall ==== | |||
[https://wiki.net.informatik.uni-goettingen.de/w/index.php?title=exercises_firewall Exercise_Firewall] | |||
==== Exercise IV: Pyretic Firewall ==== | |||
[https://wiki.net.informatik.uni-goettingen.de/w/index.php?title=exercises_pyretic_firewall Exercise_Pyretic_Firewall] | |||
=== 23 March === | |||
==== Exercise V: Kinetic firewall ==== | |||
* Note that -l in the instructions (e.g. infected -1) is not a numeric "1", but the small version of "L" | |||
* Kinetic Firewall [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/kinetic.pdf Instructions], [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/kinetic_gardenwall.py Starting_Code] | |||
==== Exercise VI (Part A): Pyretic Debugging ==== | |||
[https://wiki.net.informatik.uni-goettingen.de/w/index.php?title=exercises_pyretic_debugging Exercise_Pyretic_Debugging] | |||
==== Exercise VI (Part B): Kinetic like firewall using pox ==== | |||
[https://wiki.net.informatik.uni-goettingen.de/w/index.php?title=exercises_kinetic_pox_firewall Exercise_Kinetic_Pox_Firewall] | |||
=== 24 March === | |||
==== Exercise VII: Basic ONOS ==== | |||
* [https://wiki.net.informatik.uni-goettingen.de/w/index.php?title=basic_onos Basic ONOS] | |||
* [https://wiki.net.informatik.uni-goettingen.de/w/index.php?title=sdn_ip_onos ONOS SDN IP] | |||
==== Exercise VIII: ONOS Application ==== | |||
* Try to create your own simple ONOS application (e.g. firewall, SFC, load balancer) looking at the tutorials given | |||
** Disclaimer: I am also working on this | |||
* You can also use this time to finish with the other exercises and do the above at home | |||
* I have posted some hints to help you creating your ONOS application. [http://olbarakat.info/o/?page_id=104 Go to here] | |||
== Requirement and Due Date for Final Report (E-Mail to Mayutan)== | |||
{{Announcement|Note: The final report is due on April 30th.}} | |||
* Submit your final report (in .pdf format) as well as code (in .py format) as one zipped file with your name. | |||
subject line of email: Submission of work for Specialization in SDN | |||
Name of attachment: name.zip, e.g., if when I submit the final work, the file will be named: Mayutan.zip | |||
'''NOTE:''' You also have the opportunity to show me the code on April 21, 16-18pm. | |||
'''NOTE:''' Your final report ([ftp://ftp.springer.de/pub/tex/latex/llncs/latex2e/llncs2e.zip LaTeX Template]) should include: | |||
* Title sheet showing your name and matriculation number | |||
* 6 pages of paper review using the [http://user.informatik.uni-goettingen.de/~dkoll/files/sdn/review.docx review form]. | |||
For this, you can review the papers that your group presented (3 pages for each review) | |||
* Additionally, you can have one of the two: | |||
** 1) Programming part: Program a simple new application (e.g. like the gardenwall example or load balancing or SFC) in ONOS. It can be done in groups. | |||
** 2) 9 pages of reviews using the [http://user.informatik.uni-goettingen.de/~dkoll/files/sdn/review.docx review form]. These reviews should be of full papers that others have presented. | |||
* One review form (3 pages each) for each of the paper your group was assigned during the course for the final presentation (Use this [http://user.informatik.uni-goettingen.de/~dkoll/files/sdn/review.docx review form]). | |||
Those who need to write an additional review of a paper presented during the final presentations: (). | |||
These extra pages will be for those who don't ask questions or participate in discussions during | |||
others' presentations. | |||
Therefore, highly recommended that all of you make a first and second pass of the papers belonging | |||
to other groups. | |||
Make sure that you write your own review. Copy/Paste reviews from other participants of the course | |||
will not be accepted. The reviews are individual work. | |||
* screenshots to prove that the code is working for those who didn't show it to me during the lecture. Please refer to the Exercise Section above. | |||
* The slides (if any) you used for presenting your papers in class. | |||
No need to improve the slides after presenting. | |||
==Grading== | |||
* Each participant is required to actively attend the course (80%+ attendance) and earn 50% of the points of the exercises. | |||
* Students will be required to do a presentation after the end of the course (April 21 2016). | |||
* Grading will be based on a written report to be submitted by each student, which includes: | |||
** Slides used for presentation in the seminar (25%) | |||
** Mandatory review of SDN research papers (50%) | |||
** ONOS application/paper-review (25%) | |||
* No exam | |||
[[Category:Courses]] | [[Category:Courses]] | ||