Direct Execution of OLSR MANET Routing Daemon in NS-3

Download Report

Transcript Direct Execution of OLSR MANET Routing Daemon in NS-3

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?
– Can it be used instead of model in large scale
simulation campaigns?
• Answer: yes
• … almost
Motivation
• MANET routing protocol models are difficult
to verify.
Specification
Model
Implementation
• 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
HELLO compression
message aggregation
message jitter
OLSRd modified;
model modified;
model modified;
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.