Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Abstract— In this paper we present our real-world DYMO packet size with path accumulation enabled.
implementation, called EK-DYMOv6. EK-DYMOv6 is the first
The rest of this paper is organized as follows: Section II
DYMO implementation trial with two features: (a) conforming to
recent DYMO (DYMO-05) and PacketBB (PacketBB-01) drafts, introduces the basics of DYMO and PacketBB. In Section
and (b) running on the Linux in IPv6 environment. EK-DYMOv6 III, we survey routing protocol implementation techniques and
was implemented with two parts: (a) a kernel module with Net- existing DYMO implementations. Details of our EK-DYMOv6
filter hooks and (b) a user-space routing daemon. We introduce implementation is described in Section IV. Section V shows
the implementation detail, especially in a point of view of routing
the experimental results from our real test-bed. Finally, Sec-
table location and PacketBB parser, and analyze the performance
of our implementation through real test-bed experiments. tion VI closes this paper.
628
Authorized licensed use limited to: Pondicherry University-Ananda Rangapillai Library. Downloaded on August 13,2010 at 01:04:18 UTC from IEEE Xplore. Restrictions apply.
Every packet created in the local application is intercepted not require additional information such as hop count and
by Netfilter before forwarding decision of the Linux kernel timeout values. It is enough that the validation check of
is made and the packet is passed to our kernel module. And the destination is performed at the kernel module during the
then, our kernel module makes a forwarding decision instead forwarding decision process. In contrast, the user-space routing
of the Linux kernel. If a route to destination of the intercepted table should have whole entries since the user-space routing
packet is known, the Linux kernel will forward the packet. In daemon performs all DYMO operations.
contrast, if the route is unknown, the kernel module queues This technique also has its own weakness: the overhead for
the packet and sends a route discovery request to the user- synchronizing these two routing tables. When a routing table
space routing daemon through netlink (one of inter-process entry is updated, the user-space routing daemon must inform
communication mechanism that is supported in the Linux). the kernel module of it. However, since it does not occur in
Upon receiving the route discovery request, the user-space the forwarding decision process, the forwarding delay is not
routing daemon performs a route discovery process. When an affected. We evaluate this issue in Section V-D.
appropriate RREP is received, the routing daemon updates the
Linux kernel routing table and notifies the kernel module of C. PacketBB Parser
it. Finally the kernel module is informed that the route has Due to the complexity of PacketBB, it is important that an
been established and the queued packet can be passed to the efficient parser/generator is used. Parser/generator produces
normal packet flow. overhead dramatically when path accumulation is enabled;
address blocks and their associated type-length-value (tlv)
blocks are necessary to be reconstructed.
Network Interface
The first PacketBB parser/generator was implemented by
Our Implementation
[9] as a part of protean protocol prototyping library (protolib).
User-space Routing
Daemon
Netlink Kernel Module This implementation introduced an efficient general-purpose
Routing Table Destination List
PacketBB parser/generator. However, we use a different ap-
Packet Flow
Netfilter
proach, which is more specialized for DYMO to guarantee
DYMO control message efficiency. Our approach is based on the observation that only
over UDP
Alter routing table
the address blocks and their associated tlv blocks change fre-
using ioctl() quently in DYMO. EK-DYMOv6 PacketBB parser/generator
works as follows:
Linux When parsing a packet, our parser builds a simple parse
Kernel tree only for address and tlv blocks, rather than all elements
Routing Table
of PacketBB. If the address and tlv blocks are needed to
change, it updates the parse tree. Accordingly, the packet also
Fig. 2. The basic structure of EK-DYMOv6 is updated to contain the modified address and tlv blocks,
which can be obtained from the parse tree. In contrast, a naive
parsing and modification approach is taken for the other parts
B. Location of Routing Table because of simplicity of their structure.
One of the well-known implementation choices in the In contrast, when generating a new packet, the generator
approaches using both kernel module and user-space routing first prepares some pre-defined packet, rather than creating it
daemon is the location of routing table, which has great impact naively. Subsequently, it puts the required information such as
on efficiency. Consider that a routing table is located only in originator address, target address and their sequence number
the user-space routing daemon. To decide whether to forward into the packet. In Section V-E, we evaluate the efficiency of
or not, the kernel module needs to look up the routing table. In our parser by the comparison with protolib.
this case, the kernel module should send a look-up request to
the user-space routing daemon through IPC, which makes the V. E XPERIMENTAL R ESULTS
forwarding process slow. It has an advantage of minimizing In this section, we investigate the performance of our EK-
the size of kernel module. In contrast, when a routing table is DYMOv6 implementation through real-world experiments.
located only in the kernel module, the size of kernel module
may be large since it should be capable of routing table A. Experimental Setup
management. Obviously, this does not fulfill our design goal We set up a 3-hop chain topology with four laptops; all
which pursues for a small-size kernel module. laptops have 802.11g compliant wireless adaptor and they
One promising technique, which our EK-DYMOv6 takes act on ad-hoc mode with 54Mbps bit-rate. Table II shows
and has been first introduced in [8], is to let both kernel the details of each laptop. In order to form a 3-hop chain
module and user-space routing daemon have their own routing network in our laboratory, we use iptables [11] which provides
table. However, both tables do not need to have whole routing MAC layer packet filtering mechanism. To measure time in
entries. For example, the kernel module routing table maintains microsecond precision, we use time stamp counter (TSC timer)
a list of valid destinations. Moreover, the kernel module does with dynamic voltage management turned off.
629
Authorized licensed use limited to: Pondicherry University-Ananda Rangapillai Library. Downloaded on August 13,2010 at 01:04:18 UTC from IEEE Xplore. Restrictions apply.
TABLE II TABLE III
D ETAILS OF O UR L APTOPS P ROCESSING D ELAY OF E ACH M ODULE D URING ROUTE D ISCOVERY
Laptop No. Spec. (CPU, RAM, Wireless Adaptor and OS) Factor Delay (µs)
Intel Pentium T2400 (1.83GHz) with 1GB RAM Kernel Module 13
A Inel Pro/Wireless 3945ABG adaptor IPC (Kernel Module to User-space) 14.4
Linux Kernel 2.6.20-15 IPC (User-space to Kernel Module) 3.8
Intel Pentium M 1.5GHz with 256MB RAM User-space Daemon 1339
B Inel Pro/Wireless 2200BG adaptor
Linux Kernel 2.6.12-10 TABLE IV
Intel Pentium M 1.73GHz with 512MB RAM F ORWARDING D ELAY W. R . T ROUTING TABLE L OCATION
C Inel Pro/Wireless 2200BG adaptor
Linux Kernel 2.6.20-15 Routing Table Location Delay (µs)
Intel Pentium M 1.73GHz with 1GB RAM Only in User-space 24.99
D Ralink 802.11b/g wireless adaptor Kernel Module + User-space 9.89
Linux Kernel 2.6.20-15
TABLE V
RREQ G ENERATION AND PARSING D ELAY OF EK-DYMOV 6 AND
B. Route Discovery Delay P ROTOLIB
First, we measured time that a source takes to discover a
EK-DYMOv6 Protolib
route and compared it with ping round trip time (ping-RTT). RREQ Generation (µs) 3.28 12.34
We plotted graphs with averages from ten runs. RREQ Parsing (µs) 8.54 11.92
As shown in Figure 3, route discovery time is larger than
ping-RTT because every intermediate node spends time in
processing control messages, while ping is just forwarded to slower than the message delivery time from user-space to
next hop. When measuring the ratio of route discovery delay kernel module. User-space routing daemon requires relatively
to ping-RTT, we observe that as the hop count increases, the larger processing time than kernel module and IPC, because
ratio decreases. This implies that the kernel module of our EK- it performs most of DYMO and socket operations.
DYMOv6 makes a fast forwarding decision and the user-space
routing daemon efficiently processes the tasks needed during D. Impact of Routing Table Location
route discovery, such as packet parsing and routing table To examine the impact of routing table location, we first
operations. Hence, the processing delay from a route discovery measured the delay that it takes to execute packet forwarding
process is negligible when compared to overall network delay. process with two routing tables after route discovery. Then,
we modified our implementation so that only the user-space
45 routing daemon maintains a routing table. Table IV shows the
ping-RTT
40 Route Discovery result with two different routing table locations. The delay
of the single routing table approach requires two kinds of
35
IPC delay (one is taken by route lookup request from kernel
30 module to user-space, and the one by route lookup reply from
Time (ms)
630
Authorized licensed use limited to: Pondicherry University-Ananda Rangapillai Library. Downloaded on August 13,2010 at 01:04:18 UTC from IEEE Xplore. Restrictions apply.
F. Variation of RREQ Message Size with Path Accumulation
C1
When the path accumulation is enabled, the size of control C2
88 C3
messages such as RREQ and RREP increases linearly with the
83
number of hop count. However, if intermediate nodes append
631
Authorized licensed use limited to: Pondicherry University-Ananda Rangapillai Library. Downloaded on August 13,2010 at 01:04:18 UTC from IEEE Xplore. Restrictions apply.