Network Experiment Programming Interface (NEPI) · I Linux Network Namespaces X Planète (INRIA)...

Post on 07-Aug-2020

3 views 0 download

Transcript of Network Experiment Programming Interface (NEPI) · I Linux Network Namespaces X Planète (INRIA)...

Network ExperimentProgramming Interface

(NEPI)Alina Quereilhac Martin H. Ferrari

Thierry Turletti Walid DabbousMathieu Lacage

Planète (INRIA) NEPI GEC9 1 / 15

Objective Scenario

Simulated links/networksI ns-3 simulation models XI Realtime scheduler XI Tap device X

Light weight Virtual MachinesI Linux Network Namespaces X

Planète (INRIA) NEPI GEC9 2 / 15

Objective Scenario

Simulated links/networksI ns-3 simulation models XI Realtime scheduler XI Tap device X

Light weight Virtual MachinesI Linux Network Namespaces X

Planète (INRIA) NEPI GEC9 2 / 15

Objective Scenario

VLCServer

RouterWifiAP

WifiSTA

Router

VLCClient

Simulated links/networksI ns-3 simulation models XI Realtime scheduler XI Tap device X

Light weight Virtual MachinesI Linux Network Namespaces X

Planète (INRIA) NEPI GEC9 2 / 15

Objective Scenario

VLCServer

RouterWifiAP

WifiSTA

Router

VLCClient

Simulated links/networksI ns-3 simulation models XI Realtime scheduler XI Tap device X

Light weight Virtual MachinesI Linux Network Namespaces X

Planète (INRIA) NEPI GEC9 2 / 15

Easy Deployment

ProblemI Tap/VM creation and setupI Coherent IP address assignment across

simulation and VMsI Coherent IP forwarding tables across

simulation and VMsSolution

I Automate everythingBUT

I Need global view of experiment topology

Planète (INRIA) NEPI GEC9 3 / 15

Easy DeploymentProblem

I Tap/VM creation and setup

I Coherent IP address assignment acrosssimulation and VMs

I Coherent IP forwarding tables acrosssimulation and VMs

SolutionI Automate everything

BUTI Need global view of experiment topology

Planète (INRIA) NEPI GEC9 3 / 15

Easy DeploymentProblem

I Tap/VM creation and setupI Coherent IP address assignment across

simulation and VMs

I Coherent IP forwarding tables acrosssimulation and VMs

SolutionI Automate everything

BUTI Need global view of experiment topology

Planète (INRIA) NEPI GEC9 3 / 15

Easy DeploymentProblem

I Tap/VM creation and setupI Coherent IP address assignment across

simulation and VMsI Coherent IP forwarding tables across

simulation and VMs

SolutionI Automate everything

BUTI Need global view of experiment topology

Planète (INRIA) NEPI GEC9 3 / 15

Easy DeploymentProblem

I Tap/VM creation and setupI Coherent IP address assignment across

simulation and VMsI Coherent IP forwarding tables across

simulation and VMsSolution

I Automate everything

BUTI Need global view of experiment topology

Planète (INRIA) NEPI GEC9 3 / 15

Easy DeploymentProblem

I Tap/VM creation and setupI Coherent IP address assignment across

simulation and VMsI Coherent IP forwarding tables across

simulation and VMsSolution

I Automate everythingBUT

I Need global view of experiment topology

Planète (INRIA) NEPI GEC9 3 / 15

Related Work

I Emulab Tcl: ad hoc, hard to generalizeI OMF Ruby: unclear how to extend it to model

complex topologiesI OMNeT++ NED: hard to ensure correctnessI SSF DML: hard to ensure correctnessI Geni RSPEC: hard to ensure correctnessI Geni Omnispec: hard to ensure correctness

Planète (INRIA) NEPI GEC9 4 / 15

Related Work

I Emulab Tcl: ad hoc, hard to generalize

I OMF Ruby: unclear how to extend it to modelcomplex topologies

I OMNeT++ NED: hard to ensure correctnessI SSF DML: hard to ensure correctnessI Geni RSPEC: hard to ensure correctnessI Geni Omnispec: hard to ensure correctness

Planète (INRIA) NEPI GEC9 4 / 15

Related Work

I Emulab Tcl: ad hoc, hard to generalizeI OMF Ruby: unclear how to extend it to model

complex topologies

I OMNeT++ NED: hard to ensure correctnessI SSF DML: hard to ensure correctnessI Geni RSPEC: hard to ensure correctnessI Geni Omnispec: hard to ensure correctness

Planète (INRIA) NEPI GEC9 4 / 15

Related Work

I Emulab Tcl: ad hoc, hard to generalizeI OMF Ruby: unclear how to extend it to model

complex topologiesI OMNeT++ NED: hard to ensure correctness

I SSF DML: hard to ensure correctnessI Geni RSPEC: hard to ensure correctnessI Geni Omnispec: hard to ensure correctness

Planète (INRIA) NEPI GEC9 4 / 15

Related Work

I Emulab Tcl: ad hoc, hard to generalizeI OMF Ruby: unclear how to extend it to model

complex topologiesI OMNeT++ NED: hard to ensure correctnessI SSF DML: hard to ensure correctness

I Geni RSPEC: hard to ensure correctnessI Geni Omnispec: hard to ensure correctness

Planète (INRIA) NEPI GEC9 4 / 15

Related Work

I Emulab Tcl: ad hoc, hard to generalizeI OMF Ruby: unclear how to extend it to model

complex topologiesI OMNeT++ NED: hard to ensure correctnessI SSF DML: hard to ensure correctnessI Geni RSPEC: hard to ensure correctness

I Geni Omnispec: hard to ensure correctness

Planète (INRIA) NEPI GEC9 4 / 15

Related Work

I Emulab Tcl: ad hoc, hard to generalizeI OMF Ruby: unclear how to extend it to model

complex topologiesI OMNeT++ NED: hard to ensure correctnessI SSF DML: hard to ensure correctnessI Geni RSPEC: hard to ensure correctnessI Geni Omnispec: hard to ensure correctness

Planète (INRIA) NEPI GEC9 4 / 15

NEPI Object Model

Functional unit / BoxAttributesTrace sourcesConnectorsAllowed connectionsHierarchical

Planète (INRIA) NEPI GEC9 5 / 15

NEPI Object Model

Functional unit / Box

AttributesTrace sourcesConnectorsAllowed connectionsHierarchical

Example:I IP stackI TCP stackI Ethernet card

Planète (INRIA) NEPI GEC9 5 / 15

NEPI Object Model

Functional unit / BoxAttributes

Trace sourcesConnectorsAllowed connectionsHierarchical

Example:I IP checksumI IP forwarding

Planète (INRIA) NEPI GEC9 5 / 15

NEPI Object Model

Functional unit / BoxAttributesTrace sources

ConnectorsAllowed connectionsHierarchical

Example:I Out packetsI In packets

Planète (INRIA) NEPI GEC9 5 / 15

NEPI Object Model

Functional unit / BoxAttributesTrace sourcesConnectors

Allowed connectionsHierarchical

Ethernet

IP

dev

node

Planète (INRIA) NEPI GEC9 5 / 15

NEPI Object Model

Functional unit / BoxAttributesTrace sourcesConnectorsAllowed connections

Hierarchical

Ethernet

IP

Ethernet

dev

node node

app

Planète (INRIA) NEPI GEC9 5 / 15

NEPI Object Model

Functional unit / BoxAttributesTrace sourcesConnectorsAllowed connectionsHierarchical

Ethernet

Switch

Ethernet

node node

Node

dev

cablecable

port0 port1

Planète (INRIA) NEPI GEC9 5 / 15

Objective Scenario

Planète (INRIA) NEPI GEC9 6 / 15

NEPI Representation

Mobility

WifiNet

Device

Node

ARPICMPIP

TapNodeInterface

Node

FDNetDevice

Mobility

FDNetDevice

YansWifiPhyYansWifiPhy

Delay

YansWifiChannel

Loss

Nist Nist

WifiNet

Device

Manager

ApMac

Node

ARPIP ICMP

Manager

StaMac

TapNodeInterface

Node

ns-3NetNsNetNs

Planète (INRIA) NEPI GEC9 7 / 15

Global IP topology

net2net1net0 Wifi Ap Wifi Sta FdFdTap Tap

n1n0 n2 n3

Planète (INRIA) NEPI GEC9 8 / 15

Demo screenshot

Planète (INRIA) NEPI GEC9 9 / 15

ConclusionWell chosen Object Model

I GUI

I ExpressiveI Simple coherent APII Connection checkingI Automates deployment thanks to global

topology knowledge

More details: http://yans.pl.sophia.inria.fr/trac/nepi

Planète (INRIA) NEPI GEC9 10 / 15

ConclusionWell chosen Object Model

I GUII Expressive

I Simple coherent APII Connection checkingI Automates deployment thanks to global

topology knowledge

More details: http://yans.pl.sophia.inria.fr/trac/nepi

Planète (INRIA) NEPI GEC9 10 / 15

ConclusionWell chosen Object Model

I GUII ExpressiveI Simple coherent API

I Connection checkingI Automates deployment thanks to global

topology knowledge

More details: http://yans.pl.sophia.inria.fr/trac/nepi

Planète (INRIA) NEPI GEC9 10 / 15

ConclusionWell chosen Object Model

I GUII ExpressiveI Simple coherent APII Connection checking

I Automates deployment thanks to globaltopology knowledge

More details: http://yans.pl.sophia.inria.fr/trac/nepi

Planète (INRIA) NEPI GEC9 10 / 15

ConclusionWell chosen Object Model

I GUII ExpressiveI Simple coherent APII Connection checkingI Automates deployment thanks to global

topology knowledge

More details: http://yans.pl.sophia.inria.fr/trac/nepi

Planète (INRIA) NEPI GEC9 10 / 15

ConclusionWell chosen Object Model

I GUII ExpressiveI Simple coherent APII Connection checkingI Automates deployment thanks to global

topology knowledge

More details: http://yans.pl.sophia.inria.fr/trac/nepi

Planète (INRIA) NEPI GEC9 10 / 15

Future work

I Support SFA/rspecI Support ...?

Planète (INRIA) NEPI GEC9 11 / 15

Team

I Martin H. Ferrari, twice über Intern:implementation, ns-3 backend, NetNs

I Alina Quereilhac, Engineer: bugfixing,cleanup, refactoring

I Thierry Turletti: First userI Walid Dabbous: Initiated this work

Planète (INRIA) NEPI GEC9 12 / 15

Questions ?

Email: mathieu.lacage@inria.fr

Planète (INRIA) NEPI GEC9 13 / 15

IP endpoints

Cannot use DNS:I Some backends do not support itI Hard to deploy

Instead:I Resolve endpoint names to IP/port before

deployment

Planète (INRIA) NEPI GEC9 14 / 15

IP endpoints

Cannot use DNS:I Some backends do not support itI Hard to deploy

Instead:I Resolve endpoint names to IP/port before

deployment

Planète (INRIA) NEPI GEC9 14 / 15

IP assignment

Currently stupid algorithm:I Allocate consecutive IP addressesI n entries per forwarding table

Planned:I Automatic IP Address Assignment on Network

Topologies, by John Byers, Jay Lepreau,Jonathon Duerig and Robert Ricci

Planète (INRIA) NEPI GEC9 15 / 15

IP assignment

Currently stupid algorithm:I Allocate consecutive IP addressesI n entries per forwarding table

Planned:I Automatic IP Address Assignment on Network

Topologies, by John Byers, Jay Lepreau,Jonathon Duerig and Robert Ricci

Planète (INRIA) NEPI GEC9 15 / 15