Vous êtes sur la page 1sur 28

ns-3 Direct Code Execution

Lacage (INRIA)

ns-3 DCE

GEC9

1 / 14

Objective Scenario

Lacage (INRIA)

ns-3 DCE

GEC9

2 / 14

Objective Scenario
VLC Server Wifi STA Router

Router

Wifi AP

VLC Client

Lacage (INRIA)

ns-3 DCE

GEC9

2 / 14

Goals
Study the impact of wi routing on video stream quality

Lacage (INRIA)

ns-3 DCE

GEC9

3 / 14

Goals
Study the impact of wi routing on video stream quality Develop new wi adhoc routing protocols

Lacage (INRIA)

ns-3 DCE

GEC9

3 / 14

Problem
Need simulations: Reproducibility Debuggability Testability

Lacage (INRIA)

ns-3 DCE

GEC9

4 / 14

Problem
Need simulations: Reproducibility Debuggability Testability Need real-world experiments: Wireless medium realism

Lacage (INRIA)

ns-3 DCE

GEC9

4 / 14

Problem
Need simulations: Reproducibility Debuggability Testability Need real-world experiments: Wireless medium realism BUT: Must maintain two implementations

Lacage (INRIA)

ns-3 DCE

GEC9

4 / 14

Manual Modications
Convert global variables in arrays

Lacage (INRIA)

ns-3 DCE

GEC9

5 / 14

Manual Modications
Convert global variables in arrays Convert system calls in simulation calls

Lacage (INRIA)

ns-3 DCE

GEC9

5 / 14

Manual Modications
Convert global variables in arrays Convert system calls in simulation calls BUT, does not scale: Painful to do once Impossible to do for software updates

Lacage (INRIA)

ns-3 DCE

GEC9

5 / 14

Manual Modications
Convert global variables in arrays Convert system calls in simulation calls BUT, does not scale: Painful to do once Impossible to do for software updates The solution: Direct Code Execution Automate global variable virtualization Automate system call redirection Provide simulation system call replacements
Lacage (INRIA) ns-3 DCE GEC9 5 / 14

Related Work
Network Simulation Cradle: Automated source modications for C code Hard to extend to C++

Lacage (INRIA)

ns-3 DCE

GEC9

6 / 14

Related Work
Network Simulation Cradle: Automated source modications for C code Hard to extend to C++ Weaves: Automated textual assembly modications Does not work in practice

Lacage (INRIA)

ns-3 DCE

GEC9

6 / 14

Related Work
Network Simulation Cradle: Automated source modications for C code Hard to extend to C++ Weaves: Automated textual assembly modications Does not work in practice COOJA: Automated memory virtualization Slow
Lacage (INRIA) ns-3 DCE GEC9 6 / 14

ns-3 DCE
Adhoc ELF Loader: Fast Automated memory virtualization Automated system call redirection

Lacage (INRIA)

ns-3 DCE

GEC9

7 / 14

ns-3 DCE
Adhoc ELF Loader: Fast Automated memory virtualization Automated system call redirection Userspace system calls

Lacage (INRIA)

ns-3 DCE

GEC9

7 / 14

ns-3 DCE
Adhoc ELF Loader: Fast Automated memory virtualization Automated system call redirection Userspace system calls Kernelspace system calls

Lacage (INRIA)

ns-3 DCE

GEC9

7 / 14

Loader Performance
Scenario:
udp-perf userspace DCE Linux UDP/IP kernelspace DCE Linux UDP/IP kernelspace DCE udp-perf userspace DCE Linux UDP/IP kernelspace DCE

PointToPointLink

PointToPointLink

Lacage (INRIA)

ns-3 DCE

GEC9

8 / 14

Loader Performance
100000 Average packets per wall clock second Cooja dlmopen 10000

1000

100 0 10 20 30 40 50 Number of nodes 60 70

Lacage (INRIA)

ns-3 DCE

GEC9

9 / 14

Loader Performance
35000 Average memory usage (KB) 30000 25000 20000 15000 10000 5000 0 0 10 20 30 40 50 Number of nodes
ns-3 DCE

Cooja dlmopen

60

70

Lacage (INRIA)

GEC9

10 / 14

System Performance
1e+06 Average packets per wall clock second dce-none dce-user dce-user+kernel 100000

10000

1000 0 2 4 6 8 10 12 14 Number of nodes 16 18 20

Lacage (INRIA)

ns-3 DCE

GEC9

11 / 14

System Performance
10000 Average memory usage (KB) dce-none dce-user dce-user+kernel

1000

100 0 2 4 6 8 10 12 14 Number of nodes 16 18 20

Lacage (INRIA)

ns-3 DCE

GEC9

12 / 14

Conclusion
Reuse existing protocol implementations: Userspace: ping, traceroute, quagga, etc. Kernelspace: IP, TCP, etc.

Lacage (INRIA)

ns-3 DCE

GEC9

13 / 14

Conclusion
Reuse existing protocol implementations: Userspace: ping, traceroute, quagga, etc. Kernelspace: IP, TCP, etc. Debugging platform: Single debugger controls all protocol instances

Lacage (INRIA)

ns-3 DCE

GEC9

13 / 14

Conclusion
Reuse existing protocol implementations: Userspace: ping, traceroute, quagga, etc. Kernelspace: IP, TCP, etc. Debugging platform: Single debugger controls all protocol instances Development platform

Lacage (INRIA)

ns-3 DCE

GEC9

13 / 14

Conclusion
Reuse existing protocol implementations: Userspace: ping, traceroute, quagga, etc. Kernelspace: IP, TCP, etc. Debugging platform: Single debugger controls all protocol instances Development platform Test platform
Lacage (INRIA) ns-3 DCE GEC9 13 / 14

Future Work
Improve userspace API coverage: fork, wait, exec Add X11 connection forwarding More testing Documentation Write paper
Lacage (INRIA) ns-3 DCE GEC9 14 / 14

Vous aimerez peut-être aussi