Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum. |
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
 |
05-29-2013, 04:10 AM
|
#1
|
LQ Newbie
Registered: Mar 2013
Posts: 6
Rep: 
|
Location aided routing procol simulation in ns2, error in box.tcl file
I want to simulate location aided routing protocol in ns-2.32 on ubuntu 12.04. I have created a mobility file and tried to run box.tcl file for simulation of location aided routing protocol.
But I am getting the error "Invalid AODV type (26)" when option "set val(rp) AODV " is used and error "segmentation fault" when option "set val(rp) DSR" is used in box.tcl file.
Plz, Help me to solve this error.
|
|
|
06-05-2013, 04:49 AM
|
#2
|
LQ Newbie
Registered: Mar 2013
Posts: 6
Original Poster
Rep: 
|
Ok! I have solved the problem. I found that I need to add packet headers of TCP, Flags, ARP and AODV by adding lines "add-packet-header TCP,add-packet-header Flags, add-packet-header AODV, add-packet-header ARP " in box.tcl file.
Now,I am able to simulate LAR protocol and box.tcl file runs smoothly. 
|
|
|
06-05-2013, 05:57 AM
|
#3
|
LQ 5k Club
Registered: Jan 2008
Location: Copenhagen DK
Distribution: PCLinuxOS2023 Fedora38 + 50+ other Linux OS, for test only.
Posts: 17,520
|
# 2 .
Patch : toilers-LAR-DREAM-2.32.patch
http://www.linuxquestions.org/questi...-4175464665/#2
If you have a new patch with the TCP adds, could please upload
your files to e.g. Google Docs ?
-
Last edited by knudfl; 06-05-2013 at 06:16 AM.
|
|
|
06-05-2013, 06:33 AM
|
#4
|
LQ Newbie
Registered: Mar 2013
Posts: 6
Original Poster
Rep: 
|
@knudfl,
Yes, I already have the patch for Location Aided Routing (LAR) and Distance Routing Effect Algorithm for Mobility (DREAM) protocol. I have downloaded that patch from http://controls.ae.gatech.edu/claus/ns_lardream.html.
This patch has been developed by Claus Christmann at Georgia Tech. The authors of related paper only want that any published research from using their code include a reference to their IEEE INFOCOM 2002 paper: T. Camp, J. Boleng, B. Williams, L. Wilcox, and W. Navidi, Performance Comparison of Two Location Based Routing Protocols for Ad Hoc Networks, Proceedings of the IEEE INFOCOM, pp. 1678-1687, 2002.
One can request that code from Dr. Tracy Camp via their website http://toilers.mines.edu/Public/Code
I don't have new patch. I just edited the box.tcl file after successfully applying the patch to ns-2.32 so that simulation of LAR protocol is possible. Here is my box.tcl file of LAR protocol:
Code:
#*****************************************************************************#
# File Name: box.tcl #
# Purpose: #
# Original Author: #
# Modified by: #
# Date Created: #
#
# Copyright (C) 2004 Toilers Research Group -- Colorado School of Mines #
#
# Please see COPYRIGHT.TXT and LICENSE.TXT for copyright and license #
# details. #
#******************************************************************************/
set val(chan) Channel/WirelessChannel
set val(prop) Propagation/TwoRayGround
set val(netif) Phy/WirelessPhy
set val(mac) Mac/802_11
#set val(ifq) Queue/DropTail/PriQueue
set val(ll) LL
set val(ant) Antenna/OmniAntenna
set val(x) 300
set val(y) 600
set val(ifqlen) 50
set val(rp) AODV
#set val(rp) DSR
#set val(rp) DSDV
set val(nn) 50
set val(txPower) 0.0075 ; #100 meters
set val(rxPower) 1
set val(sc) "lar2.mob"
set val(dataStart) 100.0
set val(dataStop) 300.0
set val(signalStop) 305.0
set val(finish) 310.0
if { $val(rp) == "DSR" } {
set val(ifq) CMUPriQueue
} else {
set val(ifq) Queue/DropTail/PriQueue
}
# =====================================================================
# Other default settings
puts "setting other default settings..."
LL set mindelay_ 50us
LL set delay_ 25us
LL set bandwidth_ 0 ;# not used
Agent/Null set sport_ 0
Agent/Null set dport_ 0
Agent/CBR set sport_ 0
Agent/CBR set dport_ 0
Agent/TCPSink set sport_ 0
Agent/TCPSink set dport_ 0
Agent/TCP set sport_ 0
Agent/TCP set dport_ 0
Agent/TCP set packetSize_ 512
Queue/DropTail/PriQueue set Prefer_Routing_Protocols 1
# unity gain, omni-directional antennas
# set up the antennas to be centered in the node and 1.5 meters above it
Antenna/OmniAntenna set X_ 0
Antenna/OmniAntenna set Y_ 0
Antenna/OmniAntenna set Z_ 1.5
Antenna/OmniAntenna set Gt_ 1.0
Antenna/OmniAntenna set Gr_ 1.0
# Initialize the SharedMedia interface with parameters to make
# it work like the 914MHz Lucent WaveLAN DSSS radio interface
Phy/WirelessPhy set CPThresh_ 10.0
Phy/WirelessPhy set CSThresh_ 1.559e-11
Phy/WirelessPhy set RXThresh_ 3.652e-10
Phy/WirelessPhy set Rb_ 2*1e6
#this was the default
#Phy/WirelessPhy set Pt_ 0.2818
# This is for 100m
Phy/WirelessPhy set Pt_ 7.214e-3
# This is for 40m
#Phy/WirelessPhy set Pt_ 8.5872e-4
# This is for 250m
#Phy/WirelessPhy set Pt_ 0.2818
Phy/WirelessPhy set freq_ 914e+6
Phy/WirelessPhy set L_ 1.0
# =====================================================================
# This puts in only the headers that we need.
# =====================================================================
puts "removing unecessary packet headers..."
remove-all-packet-headers
add-packet-header IP
add-packet-header Common
add-packet-header LAR
add-packet-header LL
add-packet-header Mac
add-packet-header ARP
add-packet-header Flags
add-packet-header TCP
add-packet-header AODV
#Create a simulator object
set ns_ [new Simulator]
$ns_ use-scheduler Heap
#Open a trace file
set nt [open lar50mobi.tr w]
$ns_ use-newtrace
$ns_ trace-all $nt
set nf [open lar50mobi.nam w]
$ns_ namtrace-all-wireless $nf $val(x) $val(y)
set topo [new Topography]
$topo load_flatgrid $val(x) $val(y)
create-god $val(nn)
# New API to config node:
# 1. Create channel (or multiple-channels);
# 2. Specify channel in node-config (instead of channelType);
# 3. Create nodes for simulations.
# Create channel #1
puts "creating channel..."
set chan_1_ [new $val(chan)]
#
# define how node should be created
#
#global node setting
puts "setting global node values..."
$ns_ node-config -adhocRouting $val(rp) \
-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) \
-ifqLen $val(ifqlen) \
-antType $val(ant) \
-propType $val(prop) \
-phyType $val(netif) \
#-channelType $val(chan) \
-channel $chan_1_ \
-topoInstance $topo \
-agentTrace OFF \
-routerTrace OFF \
-macTrace ON \
-movementTrace OFF \
-txPower $val(txPower) \
-rxPower $val(rxPower)
# create the nodes
puts "creating the nodes..."
# create the nodes
for {set i 0} {$i < $val(nn) } {incr i} {
set node_($i) [$ns_ node]
$node_($i) random-motion 0 ;# disable random motion
}
#
#Define a 'finish' procedure
proc finish {} {
global ns_ nt
$ns_ flush-trace
close $nt
exit 0
}
# Load the movement file
puts "Loading the mobility file..."
source $val(sc)
#Create lar agents and attach them to the nodes
puts "creating lar agents and attaching them to nodes..."
for {set i 0} {$i < $val(nn)} {incr i} {
set g($i) [new Agent/LAR]
$node_($i) attach $g($i) 254
# need to tell the lar agents about their link layers
set ll($i) [$node_($i) set ll_(0)]
$ns_ at 0.0 "$g($i) set-ll $ll($i)"
# need to tell the lar agents which nodes they're on also
$ns_ at 0.0 "$g($i) set-node $node_($i)"
}
# the format now for the lar send is
#
# "$nodeId sendData <dest ID> <size> <method>"
#
# this will be used to test in a static configuration, and will
# change once the mobility portion is figured out.
#Schedule events
puts "Scheduling the send events"
for {set k $val(dataStart)} {$k < $val(dataStop)} {set k [expr $k + 0.25] } \
{
$ns_ at $k "$g(0) sendData 49 64 B"
$ns_ at [expr $k + .0001] "$g(1) sendData 48 64 B"
$ns_ at [expr $k + .0002] "$g(2) sendData 47 64 B"
$ns_ at [expr $k + .0003] "$g(3) sendData 46 64 B"
$ns_ at [expr $k + .0004] "$g(4) sendData 45 64 B"
$ns_ at [expr $k + .0005] "$g(5) sendData 44 64 B"
$ns_ at [expr $k + .0006] "$g(6) sendData 43 64 B"
$ns_ at [expr $k + .0007] "$g(7) sendData 42 64 B"
$ns_ at [expr $k + .0008] "$g(8) sendData 41 64 B"
$ns_ at [expr $k + .0009] "$g(9) sendData 40 64 B"
$ns_ at [expr $k + .0010] "$g(10) sendData 39 64 B"
$ns_ at [expr $k + .0011] "$g(11) sendData 38 64 B"
$ns_ at [expr $k + .0012] "$g(12) sendData 37 64 B"
$ns_ at [expr $k + .0013] "$g(13) sendData 36 64 B"
$ns_ at [expr $k + .0014] "$g(14) sendData 35 64 B"
$ns_ at [expr $k + .0015] "$g(15) sendData 34 64 B"
$ns_ at [expr $k + .0016] "$g(16) sendData 33 64 B"
$ns_ at [expr $k + .0017] "$g(17) sendData 32 64 B"
$ns_ at [expr $k + .0018] "$g(18) sendData 31 64 B"
$ns_ at [expr $k + .0019] "$g(19) sendData 30 64 B"
}
# this is done to make the simulator continue running and "settle" things out
for {set i 0} {$i < $val(nn)} {incr i} {
$ns_ at $val(signalStop) "$g($i) larDone"
}
$ns_ at $val(finish) "finish"
$ns_ at [expr $val(finish) + 0.1] "puts \"NS Exiting...\" ; $ns_ halt"
# Create some feedback for hov far we are into the simulation
for {set i 0} {$i < 100} {incr i} {
$ns_ at [expr $i * $val(finish) / 100] "puts \" ... $i % into sim ....\""
}
#Run the simulation
puts ""
puts ""
puts "***********************************************"
puts "***********************************************"
puts "***********************************************"
puts ""
puts "Running the simulation"
puts ""
puts "***********************************************"
puts "***********************************************"
puts "***********************************************"
puts ""
puts ""
$ns_ run
Last edited by Dhaval Deolasi; 06-05-2013 at 06:56 AM.
Reason: addition of box.tcl file
|
|
1 members found this post helpful.
|
06-05-2013, 08:09 AM
|
#5
|
LQ 5k Club
Registered: Jan 2008
Location: Copenhagen DK
Distribution: PCLinuxOS2023 Fedora38 + 50+ other Linux OS, for test only.
Posts: 17,520
|
# 4 .
OK, thank you. So now we have three <box.tcl> files :
"orig-box.tcl", Helen-box.tcl, and your file "ARP_TCP-box.tcl".
How did you generate the file "lar2.mob" ? ?
-
|
|
|
06-05-2013, 09:46 AM
|
#6
|
LQ Newbie
Registered: Mar 2013
Posts: 6
Original Poster
Rep: 
|
#5.
After applying the toilers-LAR-DREAM-2.32.patch to ns-2.32, it created two folders lar and dream. In lar folder, original box.tcl file was located. But, lar folder didn't contained the mobility file.
So, I used setdest utility of ns2 available under ~ns/indep-utils/cmu-scen-gen/setdest directory to generate mobility file. I traversed to that directory via command prompt and run the following command to generate mobility file "lar2.mob".
./setdest -n 50 -p 10.0 -M 10.0 -t 200.0 -x 300.0 -y 600.0 > lar2.mob
Reference: Section XI of Marc Greis tutorial available at http://www.isi.edu/nsnam/ns/tutorial/nsscript7.html
|
|
|
06-05-2013, 01:00 PM
|
#7
|
LQ 5k Club
Registered: Jan 2008
Location: Copenhagen DK
Distribution: PCLinuxOS2023 Fedora38 + 50+ other Linux OS, for test only.
Posts: 17,520
|
# 6 .
OK, my reason for asking is that those setdest generated files
don't seem to work with your box.tcl : $ ns box.tcl
Code:
.
.
INITIALIZE THE LIST xListHead
Loading the mobility file...
can't read "god_": no such variable
while executing
"$god_ set-dist 0 1 2"
(file "lar2.mob" line 154)
.
.
Last edited by knudfl; 06-05-2013 at 01:03 PM.
|
|
|
06-06-2013, 05:06 AM
|
#8
|
LQ Newbie
Registered: Mar 2013
Posts: 6
Original Poster
Rep: 
|
|
|
1 members found this post helpful.
|
06-10-2013, 05:04 AM
|
#9
|
LQ Newbie
Registered: Jun 2013
Location: Manchester
Posts: 6
Rep: 
|
To solve this problem
you have to add this line before Loading the mobility file
set god_ [God instance]
source $val(sc)
|
|
1 members found this post helpful.
|
02-21-2014, 01:05 AM
|
#10
|
LQ Newbie
Registered: Feb 2014
Posts: 2
Rep: 
|
NAM
nam is not working on this any idea why?
file is being created but exex nam filename.nam & does nothing
|
|
|
02-21-2014, 03:53 AM
|
#12
|
LQ Newbie
Registered: Feb 2014
Posts: 2
Rep: 
|
NAM
nam is installed . I can run it on terminal and open the specific nam file and it works but not working for same file from tcl script
|
|
|
02-21-2014, 04:47 AM
|
#13
|
LQ 5k Club
Registered: Jan 2008
Location: Copenhagen DK
Distribution: PCLinuxOS2023 Fedora38 + 50+ other Linux OS, for test only.
Posts: 17,520
|
# 12 .
Some files.tcl have like "exec nam out.nam &"
With all the other files.tcl, you will have to do $ nam out.nam
|
|
|
All times are GMT -5. The time now is 07:42 PM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|