Académique Documents
Professionnel Documents
Culture Documents
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
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
Lacage (INRIA)
ns-3 DCE
GEC9
11 / 14
System Performance
10000 Average memory usage (KB) dce-none dce-user dce-user+kernel
1000
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