150 likes | 390 Views
Direct Execution of OLSR MANET Routing Daemon in NS-3. Evgeni Bikov , Pavel Boyko IITP RAS, Moscow. Overview. Questions: Can the ns-3-dce framework run unmodified OLSRd routing daemon? Does it match the out of box ns-3 OLSR model?
E N D
Direct Execution of OLSR MANET Routing Daemon in NS-3 EvgeniBikov, PavelBoyko IITP RAS, Moscow
Overview • Questions: • Can the ns-3-dce framework run unmodified OLSRd routing daemon? • Does it match the out of box ns-3 OLSR model? • Can it be used instead of model in large scale simulation campaigns? • Answer: yes • … almost
Motivation • MANET routing protocol models are difficult to verify. • 3X more verification when model coexists with the “real” implementation!
Direct Code Execution • Run [as much as possible] unmodified ”implementation” code instead of model in simulated environment. • Methods: • Virtual machines; • Manual source modifications (AODV-UU); • Automatic source modifications (NSC).
NS-3-DCE Framework • http://code.nsnam.org/mathieu/ns-3-dce • No source code patching: • custom ELF loader with automatic globalization; • custom process and thread management; • glibc API reimplemented to use NS-3 API; • netlink API reimplemented . • Shown to run Zebra routing daemon. • Now runs Linux kernel as well as user space applications.
OLSRd • http://olsr.org • Production quality OLSR implementation. • ~80 KLOC in C, user space, portable, BSD license. • Widely used in community mesh networks, O(10K) installations worldwide: • http://guifi.net 12K+ operating nodes, Spain • http://funkfeuer.at Austria • Large number of RFC extensions; plugin architecture. • OLSRv2 implementation in progress.
Running OLSRd on NS-3-DCE • OLSRd appeared to be quite demanding to glibc implementation quality (good test case) • But finally it runs • Now how to check that NS-3-DCE executes OLSRd correctly? • read PCAPs; • compare to virtual machine execution; • compare to out of box NS-3 OLSR model.
OLSRd vs. ns3::olsr::RoutingProtocol • Small static topologies • Steady state simulation • No traffic apart OLSR • Observables: • routing tables @ all nodes; • mean packet size (B); • mean packet rate (1/s). • Results: • all routing tables match; • mean packet size and rate: up to 2X difference.
Calibration • Find and fix the differences between OLSRd and NS-3 OLSR model until observables match. • Differences found: • default timeouts OLSRd modified; • HELLO compression model modified; • message aggregation model modified; • message jitter OLSRd modified. • After calibration observables match within 1-5%.
Example: Message Jitter RFC NS-3 OLSR model OLSRd
Comparison: Transient Behavior • 100 nodes • Static random positions • No traffic • Mean known route length (top) • Number of known destinations (bottom) • Similar behavior, but difference >> stddev.
Comparison: Steady State • Good: average steady state route length matches. • Bad: up to 2x difference in average packet size and average packet rate. • Calibration made for small networks does not help at larger scale. Need more accurate message compression and aggregation mechanisms in the model.
Comparison: Performance • OLSRd outperforms model at 100 nodes
Conclusions • Use model at the early stages of MANET routing protocol design/research. • Finally discard model and switch to DCE of implementation. • Use calibration procedure in between to test model and implementation against each other.