Direct Execution of OLSR MANET Routing Daemon in

  • Slides: 14
Download presentation
Direct Execution of OLSR MANET Routing Daemon in NS-3 Evgeni Bikov, Pavel Boyko IITP

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?

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 •

Motivation • MANET routing protocol models are difficult to verify. Specification Model Implementation • 3 X more verification when model coexists with the “real” implementation!

Direct Code Execution • Run [as much as possible] unmodified ”implementation” code instead of

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:

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,

OLSRd • • http: //olsr. org Production quality OLSR implementation. ~80 KLOC in C, user space, portable, BSD license. Widely used in community mesh networks, O(10 K) installations worldwide: – http: //guifi. net 12 K+ operating nodes, Spain – http: //funkfeuer. at Austria • Large number of RFC extensions; plugin architecture. • OLSRv 2 implementation in progress.

Running OLSRd on NS-3 -DCE • OLSRd appeared to be quite demanding to glibc

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. ns 3: : olsr: : Routing. Protocol • • Small static topologies

OLSRd vs. ns 3: : olsr: : Routing. Protocol • • 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 2 X difference.

Calibration • Find and fix the differences between OLSRd and NS-3 OLSR model until

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; OLSRd modified. • After calibration observables match within 1 -5%.

Example: Message Jitter RFC NS-3 OLSR model OLSRd

Example: Message Jitter RFC NS-3 OLSR model OLSRd

Comparison: Transient Behavior 100 nodes Static random positions No traffic Mean known route length

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

Comparison: Steady State • Good: average steady state route length matches. • Bad: up to 2 x 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

Comparison: Performance • OLSRd outperforms model at 100 nodes

Conclusions • Use model at the early stages of MANET routing protocol design/research. •

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.