Specialization Software-defined Networking (Winter 2015/2016): Difference between revisions

 
(44 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Announcement|Note: Since 25th March is Easter Friday, the course and final presentations that are scheduled for 25th March will be shifted to a date in the last two weeks of April. We can decide on the exact day on the 21st March, on the first day of the course. }}
{{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:  
{{Announcement|Note:  
Line 28: Line 28:


==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 58: Line 59:
| align="right" | 23.03.2016
| align="right" | 23.03.2016
| Lecture III: Enhancing Data Plane - II
| Lecture III: Enhancing Data Plane - II
| Exercise V: Kinetic Firewall
| Exercise V: Kinetic Firewalls
| Group Discussion III
| Group Discussion III
| Exercise VI: Kinetic-pox loadbalancer
| Exercise VI: pyretic debugging
|-
|-
| align="right" | 24.03.2016
| align="right" | 24.03.2016
| Exercise VII: kinetic, pyretic debugging
| Lecture IV: ONOS
| Exercise VIII: Service Chaining I
| Exercise VIII: ONOS tutorials
| Group Discussion IV
| Group Discussion IV
| Exercise IX: Service Chaining II
| Exercise IX: ONOS Applications
|-
| align="right" | xx.xx.2016 (Since 25th March is Easter Friday, see note above)
| "Preparation for final presentation"
| "Preparation for final presentation"
| Final presentations I
| Final presentation II
|-
|-
|}
|}
== 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 89: Line 100:
* 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]
* 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 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]
* 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
* Lecture IV: ONOS: [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Lectures/ONOS.pdf ONOS]


== Group Discussion ==
== Group Discussion ==


=== GD I ===
=== GD I ===
Link to all papers [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/GD/0.GD-I-Debugging.zip]
* 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 ===
=== 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/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 ===
=== 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 ===
=== 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]


=== Full Papers ===
== Papers for Final Presentations ==
* NFV & security
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fconferences.sigcomm.org%2fsigcomm%2f2015%2fpdf%2fpapers%2fp199.pdf McTLS]
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fconferences.sigcomm.org%2fsigcomm%2f2015%2fpdf%2fpapers%2fp227.pdf Rollback Recovery of Middlebox]


* Miscellaneous Papers - I
* Presentations will be from 8-12 on April 21.
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fconferences.sigcomm.org%2fsosr%2f2016%2fpapers%2fsosr_paper69.pdf CacheFlow]
* 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://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fconferences.sigcomm.org%2fsosr%2f2016%2fpapers%2fsosr_paper62.pdf Safe and Flexible Controller upgrades in SDN]


* Miscellaneous Papers - II
* [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/presentation/papers.zip All the papers can be downloaded here as a zip file]
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fconferences.sigcomm.org%2fsosr%2f2016%2fpapers%2fsosr_paper42.pdf Improving SDN with InSPired Swithes]
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fconferences.sigcomm.org%2fsosr%2f2016%2fpapers%2fsosr_paper70.pdf RAVEL]


* Middlebox Optimization/Load balancers - I
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=https%3a%2f%2fwww.usenix.org%2fsystem%2ffiles%2fconference%2fnsdi16%2fnsdi16-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
* NFV & security (Vijay, Mohsen)
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=https%3a%2f%2fwww.usenix.org%2fsystem%2ffiles%2fconference%2fnsdi16%2fnsdi16-paper-khalid.pdf Paving the way for NFV: Simplifying middlebox modifications Using StateAlyzr]
** [http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p199.pdf McTLS]
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fdl.acm.org%2fcitation.cfm%3fid%3d2396566%26CFID%3d763630408%26CFTOKEN%3d59973308 XoMB: Extensible Open Middleboxes with comodity servers]
** [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]


* SDN and Fault Tolerance:
* Middlebox Optimization/Load balancers - I (Mehdi, Pouya)
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fconferences.sigcomm.org%2fsosr%2f2016%2fpapers%2fsosr_paper57.pdf LegoSDN: Isolating and tolerating SDN application failures with LegoSDN]
** [https://www.usenix.org/system/files/conference/nsdi16/nsdi16-paper-heorhiadi.pdf Simplifying SDN optimization using SOL]
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fconferences.sigcomm.org%2fsosr%2f2016%2fpapers%2fsosr_paper67.pdf Hula: scalable load balancing using programmable data planes. (NSDI 2016)]
** [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/GD/Full_papers/CoMB-nsdi12.pdf CoMB: Design and Implementation of consolidated Middlebox architecture]


* Distributed Load Balancers:
* Middlebox Optimization/Load balancers - II (Osamah, Fazely)
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fconferences.sigcomm.org%2fsigcomm%2f2015%2fpdf%2fpapers%2fp465.pdf PRESTO]
** [https://www.usenix.org/system/files/conference/nsdi16/nsdi16-paper-khalid.pdf Paving the way for NFV: Simplifying middlebox modifications Using StateAlyzr]
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fieeexplore.ieee.org%2fstamp%2fstamp.jsp%3ftp%3d%26arnumber%3d5934956 Mahout]
** [http://dl.acm.org/citation.cfm?id=2396566 XoMB: Extensible Open Middleboxes with comodity servers]


* Controller based Flow Scheduling and Load Balancers:
* SDN and Fault Tolerance: (Dieter, Ferdinand)
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fdl.acm.org%2fcitation.cfm%3fid%3d2342446%26picked%3dformats Kandoo]
** [http://conferences.sigcomm.org/sosr/2016/papers/sosr_paper57.pdf LegoSDN: Isolating and tolerating SDN application failures with LegoSDN]
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=https%3a%2f%2fwww.usenix.org%2fsystem%2ffiles%2fconference%2fnsdi16%2fnsdi16-paper-eisenbud.pdf Maglev: A Fast and Reliable Software Network Load balancer (NSDI 16)]
** [http://conferences.sigcomm.org/sosr/2016/papers/sosr_paper67.pdf Hula: scalable load balancing using programmable data planes. (NSDI 2016)]


* VNF Migration Frameworks:
* Open vSwitch (Georgios)
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fwww.cs.cornell.edu%2f%257Edjwill%2fpubs%2fsplitmerge.pdf SplitMerge]
** [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/presentation/papers/nsdi15-Open-vSwitch.pdf The Design and Implementation of Open vSwitch]
** [https://email.gwdg.de/owa/redir.aspx?C=9axCjnHAfUS-Ioa5_Hyq5QJGXTAEV9MI8BfM0xQXJ8u-jNXDYXycDar-dbUSUeZwEtI5H1OfyV8.&URL=http%3a%2f%2fdl.acm.org%2fcitation.cfm%3fid%3d2626313%26CFID%3d763630408%26CFTOKEN%3d59973308 OpenNF]


== Exercises ==
== Exercises ==
Line 173: Line 189:


=== 23 March ===
=== 23 March ===
==== Exercise V (Part A): Kinetic firewall ====
==== 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"
* 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]
* 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 V (Part B): Kinetic like firewall using pox ====
==== 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]
[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.


==== Exercise VI: Pyretic Debugging ====
[https://wiki.net.informatik.uni-goettingen.de/w/index.php?title=exercises_pyretic_debugging Exercise_Pyretic_Debugging]


=== 24 March ===
Make sure that you write your own review. Copy/Paste reviews from other participants of the course
==== Exercise VII: Basic ONOS ====
will not be accepted. The reviews are individual work.
[https://wiki.net.informatik.uni-goettingen.de/w/index.php?title=basic_onos Basic ONOS]


==== Exercise VIII: ONOS SDN IP ====
* 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.
[https://wiki.net.informatik.uni-goettingen.de/w/index.php?title=sdn_ip_onos ONOS SDN IP]
* 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




=== Additional Exercises ===




[[Category:Courses]]
[[Category:Courses]]