How to implement a virtual How to implement a virtual network - - PowerPoint PPT Presentation

how to implement a virtual how to implement a virtual
SMART_READER_LITE
LIVE PREVIEW

How to implement a virtual How to implement a virtual network - - PowerPoint PPT Presentation

Status Report: Marionnet Marionnet Status Report: How to implement a virtual How to implement a virtual network laboratory in six network laboratory in six months and be happy months and be happy Jean-Vincent Loddo


slide-1
SLIDE 1

Luca Saiu Luca Saiu < <saiu@lipn.univ-paris13.fr saiu@lipn.univ-paris13.fr> > - ML Workshop, Freiburg, 2007-10-05

  • ML Workshop, Freiburg, 2007-10-05

Status Report: Status Report: Marionnet Marionnet

“ “How to implement a virtual How to implement a virtual network laboratory in six network laboratory in six months and be happy” months and be happy”

Jean-Vincent Loddo Jean-Vincent Loddo <loddo@lipn.univ-paris13.fr> <loddo@lipn.univ-paris13.fr> Luca Saiu Luca Saiu < <saiu@lipn.univ-paris13.fr saiu@lipn.univ-paris13.fr> > Universit Université é Paris 13 Paris 13

slide-2
SLIDE 2

Luca Saiu Luca Saiu < <saiu@lipn.univ-paris13.fr saiu@lipn.univ-paris13.fr> > - ML Workshop, Freiburg, 2007-10-05

  • ML Workshop, Freiburg, 2007-10-05

Requirements Requirements

T eaching first- and second-year students to T eaching first- and second-year students to setup and configure setup and configure networks. networks. Either: Either: in the traditional way: in a in the traditional way: in a room full of room full of computers, wires, and devices computers, wires, and devices In a In a simulated environment simulated environment Or: Or: faithful faithful simulation simulation easy easy to use to use Robust Robust Fast to write Fast to write We We want it: want it:

slide-3
SLIDE 3

Luca Saiu Luca Saiu < <saiu@lipn.univ-paris13.fr saiu@lipn.univ-paris13.fr> > - ML Workshop, Freiburg, 2007-10-05

  • ML Workshop, Freiburg, 2007-10-05

Let's give it a look Let's give it a look

Live demo Live demo

slide-4
SLIDE 4

Luca Saiu Luca Saiu < <saiu@lipn.univ-paris13.fr saiu@lipn.univ-paris13.fr> > - ML Workshop, Freiburg, 2007-10-05

  • ML Workshop, Freiburg, 2007-10-05

Some data Some data

OCaml OCaml ~12,000 lines ~12,000 lines C C ~1,000 lines ~1,000 lines Code size: Code size: Notable features: Notable features: Concurrency Concurrency Fault tolerance Fault tolerance File format backward- & File format backward- & foward- foward-compatibility compatibility GUI (GTK+) GUI (GTK+) Reuse of C code (with modifications): Reuse of C code (with modifications): UML, by Jeff Dike UML, by Jeff Dike (User-Mode Linux) (User-Mode Linux) VDE, by Renzo Davoli VDE, by Renzo Davoli

6 man months 6 man months

slide-5
SLIDE 5

Luca Saiu Luca Saiu < <saiu@lipn.univ-paris13.fr saiu@lipn.univ-paris13.fr> > - ML Workshop, Freiburg, 2007-10-05

  • ML Workshop, Freiburg, 2007-10-05

Emulation-level Emulation-level vs.

  • vs. user-level

user-level network network

slide-6
SLIDE 6

Luca Saiu Luca Saiu < <saiu@lipn.univ-paris13.fr saiu@lipn.univ-paris13.fr> > - ML Workshop, Freiburg, 2007-10-05

  • ML Workshop, Freiburg, 2007-10-05

Treeviews Treeviews

slide-7
SLIDE 7

Luca Saiu Luca Saiu < <saiu@lipn.univ-paris13.fr saiu@lipn.univ-paris13.fr> > - ML Workshop, Freiburg, 2007-10-05

  • ML Workshop, Freiburg, 2007-10-05

The The 'a forest 'a forest datatype datatype

type 'a forest = type 'a forest = Empty Empty | NonEmpty of | NonEmpty of 'a * 'a * (* first tree root *) (* first tree root *) ('a forest) * ('a forest) * (* first tree subtrees *) (* first tree subtrees *) ('a forest);; ('a forest);; (* other trees *) (* other trees *)

The right data structure for treeviews... The right data structure for treeviews... ...but for network graphs? ...but for network graphs? What What could be a reasonable could be a reasonable 'a 'a? ?

slide-8
SLIDE 8

Luca Saiu Luca Saiu < <saiu@lipn.univ-paris13.fr saiu@lipn.univ-paris13.fr> > - ML Workshop, Freiburg, 2007-10-05

  • ML Workshop, Freiburg, 2007-10-05

Messages and thunks Messages and thunks

class ['a] queue : class ['a] queue :

  • bject
  • bject

val elements : 'a list ref val elements : 'a list ref val empty_condition : Condition.t val empty_condition : Condition.t val mutex : Mutex.t val mutex : Mutex.t method private __empty : bool method private __empty : bool method dequeue : 'a method dequeue : 'a method enqueue : 'a -> unit method enqueue : 'a -> unit method prepend : 'a -> unit method prepend : 'a -> unit end end

Our message-passing infrastructure is built on a Our message-passing infrastructure is built on a (unit -> unit) queue (unit -> unit) queue. .

slide-9
SLIDE 9

Luca Saiu Luca Saiu < <saiu@lipn.univ-paris13.fr saiu@lipn.univ-paris13.fr> > - ML Workshop, Freiburg, 2007-10-05

  • ML Workshop, Freiburg, 2007-10-05

More on thunks More on thunks

let with_mutex mutex thunk = let with_mutex mutex thunk = lock mutex; lock mutex; try try let result = thunk () in let result = thunk () in unlock mutex; unlock mutex; result result with e -> begin with e -> begin unlock mutex; unlock mutex; Printf.printf Printf.printf “ “%s raised in critical section.\n" %s raised in critical section.\n" (Printexc.to_string e); (Printexc.to_string e); raise e; raise e; end;; end;;

Passing an anonymous thunk to Passing an anonymous thunk to with_mutex with_mutex is a is a pattern pattern in our code. in our code.

slide-10
SLIDE 10

Luca Saiu Luca Saiu < <saiu@lipn.univ-paris13.fr saiu@lipn.univ-paris13.fr> > - ML Workshop, Freiburg, 2007-10-05

  • ML Workshop, Freiburg, 2007-10-05

What now What now

We've ordered We've ordered 1500 1500 virgin DVDs for this virgin DVDs for this semester semester Marionnet Marionnet will be distributed to students will be distributed to students and used in courses about networks... and used in courses about networks...

  • n GNU/Linux
  • n GNU/Linux live DVD

live DVD systems systems by now only at the Universit by now only at the Université é Paris 13 IUT Paris 13 IUT We confide in a We confide in a wider wider adoption in the future adoption in the future so the thing should better work so the thing should better work “ “Marionnettix Marionnettix”, based on Knoppix ”, based on Knoppix

slide-11
SLIDE 11

Luca Saiu Luca Saiu < <saiu@lipn.univ-paris13.fr saiu@lipn.univ-paris13.fr> > - ML Workshop, Freiburg, 2007-10-05

  • ML Workshop, Freiburg, 2007-10-05

About About Marionnet Marionnet

You're You're welcome welcome to share and change to share and change Marionnet Marionnet: : it's it's free software free software, distributed under the , distributed under the GNU GNU General Public License General Public License. .

slide-12
SLIDE 12

Luca Saiu Luca Saiu < <saiu@lipn.univ-paris13.fr saiu@lipn.univ-paris13.fr> > - ML Workshop, Freiburg, 2007-10-05

  • ML Workshop, Freiburg, 2007-10-05

Thanks Thanks

Thanks Thanks

http://www.marionnet.org http://www.marionnet.org It will be online “Real Soon Now” It will be online “Real Soon Now” (yes, trust me) (yes, trust me) It's functional!! It's functional!! (mostly) (mostly) It works!!! It works!!!

No questions yet? No questions yet?

(it should) (it should) Download it! Download it! Ok, enough. Ok, enough. This slide is over... This slide is over... No more easter eggs... No more easter eggs... This is the last one. This is the last one.

Thanks Thanks