Wireless DCCP patch in NS2
These patchs are based on the patch written by Nils-Erik Mattsson for
ns2 verison 2.26, found on his site. You can find
more information
(use, examples, ...) on his own site (the site does not exist
anymore, as of 12 July 2006, but I have a copy of his Master's Thesis).
There are no implementation changes in these patchs, but only moving
of code (in order to have a clean compilation of the patch and
execution of ns2) and a few fixes. Therefore, they use the old DCCP drafts of the original
patch.
Note about wireless fix (short patch):
- Background: On wireless networks, a packet should be received by
several machines. This is done in ns2 by copying the packet into
several packets, one for each machine that will receive the
packet. File: channel.cc:378 and 168-181.
- The problem: As in hdr_dccp the options_ member is a pointer, it
is not correctly copied (the pointer is copied instead of its content).
- Solution: packet.h:645, add options_ copying by using a copy
constructor for the DCCPOptions class.
Note about stack smashing fix (18 April 2007): there was
a bug in the original DCCP patch, which appears with gcc 4.1 (4.0 too?)
on my machine, leading to a "stack smashing detected" execution error.
In file trace/cmu-trace.cc, beginning of nam_format
function, ptype is declared as char ptype[11], but "DCCP_Response" (for ex.) has more than 11 characters. Therefore, ptype should be declared at least 14 characters.
Note about -O2 compilation fix: take a loot at the patch for more information.
Compilation: cd ns-2.xx ; patch -p1 <dccp.patch ; ./configure ; make clean
; make (note the make
clean, since .h files are not tracked at all in ns2).
Example file: dccp-wireless.tcl.
NS2 version 2.34
This patch contains the patch from
2.31 ported to 2.34, a commenting out of a line #define _SYS_QUEUE_H,
and a removal of a few now unnecessary lines from original dccp patch
(patch contributed by Wassim Ramadan).
NS2 version 2.31
This patch contains: original patch for
2.26, moving of code (and verification) for clean patching with ns
2.31, wireless fix, compilation fix when using -O2, and stack smashing
fix (all these fix are about the original DCCP patch).
NS2 version 2.29
Use this patch, which contains full
(original+moving+wireless+O2) DCCP (patch contributed by Sébastien Linck).
NS2 version 2.28
Use this patch,
which
contains full (original + moving + wireless + O2) DCCP.
Eugen Dedu