LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
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


Reply
  Search this Thread
Old 11-05-2014, 09:36 AM   #1
bayefalle
LQ Newbie
 
Registered: Aug 2014
Posts: 10

Rep: Reputation: Disabled
How to implement aodv routing protocol in leach in ns2.34


Hello evrybody,

i want to use aodv in leach and i have changed dsdv by aodv in the file wireless.tcl too i have downloaded the file aodv.tcl. If i run ./test, i obtain this error:can't read "node_(0=)": no such variable
while execting
"$ns_ at $opt(stop).000000001 "$node_($i) reset""
invoked from within
for {set i 0} {$i< $opt(nn)} {incr i} {
$ns_ at $opt(stop).000000001 "$node_($i) reset";
}"

please help me to resolve my problem!
i attached the file aodv.tcl
Attached Files
File Type: txt aodv.txt (3.4 KB, 76 views)
 
Old 11-05-2014, 11:23 AM   #2
knudfl
LQ 5k Club
 
Registered: Jan 2008
Location: Copenhagen DK
Distribution: PCLinuxOS2023 Fedora38 + 50+ other Linux OS, for test only.
Posts: 17,511

Rep: Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641
Quote:
I have downloaded the file aodv.tcl
Well, then please supply a link to the site you got it from.

The configuration file "aodv.tcl" :
. https://github.com/softvar/ns2-roadv...aster/aodv.tcl
. http://samtrac.informatik.hu-berlin....aodv.tcl?rev=6


Changing dsdv to aodv in wireless.tcl, line 60 is OK.
The simulation will run as usual,
with little or no changes to the out files.

May be you have done some more changes to wireless.tcl ?
( A download of a random configuration file does no harm.)
Please describe all changes made to wireless.tcl .


HOWTO attach a file.tcl : Attach as name.tcl.txt .

-
 
Old 11-05-2014, 11:58 AM   #3
bayefalle
LQ Newbie
 
Registered: Aug 2014
Posts: 10

Original Poster
Rep: Reputation: Disabled
Thanks to reply me, i have downloded my file aodv.tcl in this link http://mailman.isi.edu/pipermail/ns-...ne/023840.html
when i used you file by this link, samtrac.informatik.hu-berlin.de/brn/browser/BerlinRoofNet/simulation/ns2/ns-2.29-click/aodv/aodv.tcl?rev=6, i obtained this error:
invalid command name "Agent/rtProto/AODV"
while executing
"Agent/rtProto/AODV instproc init args {
$self next $args
} "
(file "/home/cisse/ns-allinone-2.34/ns-2.34/tcl/mobility/aodv.tcl" line 19)
invoked from within
"source.orig /home/cisse/ns-allinone-2.34/ns-2.34/tcl/mobility/aodv.tcl"
("uplevel" body line 1)
invoked from within
"uplevel source.orig[list $fileName]"
invoked from within
"if [$instance_ is_http_url $fileName] {
set buffer [$instance_ read_url $fileName]
uplevel eval $buffer
} else {
uplevel source.orig[list $fileName]
..."
(procedure "source" line 8)
invoked from within
"source /home/cisse/ns-allinone-2.34/ns-2.34/tcl/mobility/$opt(rp).tcl"
(file "wireless.tcl" line 190)
I attached my wireless.tcl file

# Copyright (c) 1997 Regents of the University of California.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
# must display the following acknowledgement:
# This product includes software developed by the Computer Systems
# Engineering Group at Lawrence Berkeley Laboratory.
# 4. Neither the name of the University nor of the Laboratory may be used
# to endorse or promote products derived from this software without
# specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# $Header: /usr/src/mash/repository/vint/ns-2/tcl/ex/wireless.tcl,v 1.2 1999/02/24 23:27:34 haldar Exp $
#
# Ported from CMU/Monarch's code, nov'98 -Padma.

# ======================================================================
# Default Script Options
# ======================================================================
set opt(chan) Channel/WirelessChannel
set opt(prop) Propagation/TwoRayGround
#set opt(netif) NetIf/SharedMedia
set opt(netif) Phy/WirelessPhy
#set opt(mac) Mac/802_11
set opt(mac) Mac/802_11
set opt(ifq) Queue/DropTail/PriQueue
set opt(ll) LL
set opt(ant) Antenna/OmniAntenna

set opt(x) 0 ;# X dimension of the topography
set opt(y) 0 ;# Y dimension of the topography
#set opt(cp) "../mobility/scene/cbr-50-20-4-512" ;# connection pattern file
set opt(cp) ""
set opt(sc) "../mobility/scene/scen-670x670-50-600-20-2" ;# scenario file

set opt(ifqlen) 50 ;# max packet in ifq
set opt(nn) 51 ;# number of nodes
set opt(seed) 0.0
set opt(stop) 10.0 ;# simulation time
set opt(tr) out.tr ;# trace file
set opt(rp) aodv ;# routing protocol script
set opt(lm) "on" ;# log movement

# ======================================================================

set AgentTrace ON
set RouterTrace ON
set MacTrace OFF

LL set mindelay_ 50us
LL set delay_ 25us
LL set bandwidth_ 0 ;# not used
LL set off_prune_ 0 ;# not used
LL set off_CtrMcast_ 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_ 1460

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
Phy/WirelessPhy set Pt_ 0.2818
Phy/WirelessPhy set freq_ 914e+6
Phy/WirelessPhy set L_ 1.0

# ======================================================================

proc usage { argv0 } {
puts "Usage: $argv0"
puts "\tmandatory arguments:"
puts "\t\t\[-x MAXX\] \[-y MAXY\]"
puts "\toptional arguments:"
puts "\t\t\[-cp conn pattern\] \[-sc scenario\] \[-nn nodes\]"
puts "\t\t\[-seed seed\] \[-stop sec\] \[-tr tracefile\]\n"
}


proc getopt {argc argv} {
global opt
lappend optlist cp nn seed sc stop tr x y

for {set i 0} {$i < $argc} {incr i} {
set arg [lindex $argv $i]
if {[string range $arg 0 0] != "-"} continue

set name [string range $arg 1 end]
set opt($name) [lindex $argv [expr $i+1]]
}
}


proc cmu-trace { ttype atype node } {
global ns_ tracefd

if { $tracefd == "" } {
return ""
}
set T [new CMUTrace/$ttype $atype]
$T target [$ns_ set nullAgent_]
$T attach $tracefd
$T set src_ [$node id]

$T node $node

return $T
}


proc create-god { nodes } {
global ns_ god_ tracefd

set god_ [new God]
$god_ num_nodes $nodes
}

proc log-movement {} {
global logtimer ns_ ns

set ns $ns_
#source tcl/mobility/timer.tcl
source /home/cisse/ns-allinone-2.34/ns-2.34/tcl/mobility/timer.tcl
Class LogTimer -superclass Timer
LogTimer instproc timeout {} {
global opt node_;
for {set i 0} {$i < $opt(nn)} {incr i} {
$node_($i) log-movement
}
$self sched 0.1
}

set logtimer [new LogTimer]
$logtimer sched 0.1
}

# ======================================================================
# Main Program
# ======================================================================
getopt $argc $argv

#
# Source External TCL Scripts
#
# source tcl/lib/ns-mobilenode.tcl
source /home/cisse/ns-allinone-2.34/ns-2.34/tcl/lib/ns-mobilenode.tcl

#if { $opt(rp) != "" } {
#source tcl/mobility/$opt(rp).tcl
source /home/cisse/ns-allinone-2.34/ns-2.34/tcl/mobility/$opt(rp).tcl
#} elseif { [catch { set env(NS_PROTO_SCRIPT) } ] == 1 } {
#puts "\nenvironment variable NS_PROTO_SCRIPT not set!\n"
#exit
#} else {
#puts "\n*** using script $env(NS_PROTO_SCRIPT)\n\n";
#source $env(NS_PROTO_SCRIPT)
#}
# source tcl/lib/ns-cmutrace.tcl
source /home/cisse/ns-allinone-2.34/ns-2.34/tcl/lib/ns-cmutrace.tcl
# do the get opt again incase the routing protocol file added some more
# options to look for
getopt $argc $argv

if { $opt(x) == 0 || $opt(y) == 0 } {
usage $argv0
exit 1
}

if {$opt(seed) > 0} {
puts "Seeding Random number generator with $opt(seed)\n"
ns-random $opt(seed)
}

#
# Initialize Global Variables
#
set ns_ [new Simulator]
set chan [new $opt(chan)]
set prop [new $opt(prop)]
set topo [new Topography]
set tracefd [open leach.tr w]
#set tracefd [open $opt(tr) w]

$topo load_flatgrid $opt(x) $opt(y)

$prop topography $topo

#
# Create God
#
create-god $opt(nn)


#
# log the mobile nodes movements if desired
#
if { $opt(lm) == "on" } {
log-movement
}

#
# Create the specified number of nodes $opt(nn) and "attach" them
# the channel.
# Each routing protocol script is expected to have defined a proc
# create-mobile-node that builds a mobile node and inserts it into the
# array global $node_($i)
#

if { [string compare $opt(rp) "dsr"] == 0} {
for {set i 0} {$i < $opt(nn) } {incr i} {
dsr-create-mobile-node $i
}
} elseif { [string compare $opt(rp) "dsdv"] == 0} {
for {set i 0} {$i < $opt(nn) } {incr i} {
dsdv-create-mobile-node $i
}
} elseif { [string compare $opt(rp) "leach"] == 0} {
for {set i 0} {$i < $opt(nn) } {incr i} {
leach-create-mobile-node $i
}
} elseif { [string compare $opt(rp) "leach-c"] == 0} {
for {set i 0} {$i < $opt(nn) } {incr i} {
leach-create-mobile-node $i
}
} elseif { [string compare $opt(rp) "stat-clus"] == 0} {
for {set i 0} {$i < $opt(nn) } {incr i} {
leach-create-mobile-node $i
}
} elseif { [string compare $opt(rp) "mte"] == 0} {
for {set i 0} {$i < $opt(nn) } {incr i} {
leach-create-mobile-node $i
}
}


#
# Source the Connection and Movement scripts
#
if { $opt(cp) == "" } {
puts "*** NOTE: no connection pattern specified."
set opt(cp) "none"
} else {
puts "Loading connection pattern..."
source $opt(cp)
}


#
# Tell all the nodes when the simulation ends
#
for {set i 0} {$i < $opt(nn) } {incr i} {
$ns_ at $opt(stop).000000001 "$node_($i) reset";
}
$ns_ at $opt(stop).00000001 "puts \"NS EXITING...\" ; $ns_ halt"


if { $opt(sc) == "" } {
puts "*** NOTE: no scenario file specified."
set opt(sc) "none"
} else {
puts "Loading scenario file..."
source $opt(sc)
puts "Load complete..."
}

puts $tracefd "M 0.0 nn $opt(nn) x $opt(x) y $opt(y) rp $opt(rp)"
puts $tracefd "M 0.0 sc $opt(sc) cp $opt(cp) seed $opt(seed)"
puts $tracefd "M 0.0 prop $opt(prop) ant $opt(ant)"

puts "Starting Simulation..."
$ns_ run
 
Old 11-05-2014, 12:51 PM   #4
knudfl
LQ 5k Club
 
Registered: Jan 2008
Location: Copenhagen DK
Distribution: PCLinuxOS2023 Fedora38 + 50+ other Linux OS, for test only.
Posts: 17,511

Rep: Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641Reputation: 3641
#3 :
Quote:
I attached my wireless.tcl file
No attachment was found.

Please edit post #3 to use code tags around the tcl code
. http://www.linuxquestions.org/questi....php?do=bbcode
. http://www.linuxquestions.org/questi...gs-4175464257/
Editing : The 'Edit' button.
→ Code must be in code tags :
Type [/code] at code end, [code] at code text start.

No "aodv.tcl" configuration file is used in your "wireless.tcl" :
$ grep -n aodv wireless_bayefalle.tcl
63:set opt(rp) aodv ;# routing protocol script

? Aren't you just showing the default wireless.tcl ? ?

About the configuration files by name `aodv.tcl' :
! A configuration file cannot be used like this : $ ns aodv.tcl
None of the files linked in post #2 can be used for a simulation
with $ ns aodv.tcl

-
 
Old 11-10-2014, 09:52 AM   #5
bayefalle
LQ Newbie
 
Registered: Aug 2014
Posts: 10

Original Poster
Rep: Reputation: Disabled
obtain a set of neighbors at 1 hop in ns2.34

Hello,

i used ns2.34 with leach and dsdv the routing protocol. I want to obtain a set of neighbors of each cluster head at 1 hop when i run this commande: ../ns2.34#./test

Please help me to obtain the set of neighbords.

Best regards
 
  


Reply

Tags
leach, ns2



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
problem with running leach protocol in ns2.34 leach.er Mohamed69 Linux - Software 14 04-16-2018 07:10 AM
NS2 simulation to implement LEACH protocol Pavith Linux - Wireless Networking 35 04-05-2018 08:17 AM
Modifying the RREQ paquet of AODV routing protocol in ns2 info_mimi Linux - Software 0 09-23-2013 10:45 PM
Please guide me hw to implement LEACH protocol in Ns2.34 havn installed Ubuntu 12.10 Pallavi13 Linux - Software 2 05-30-2013 04:34 AM
i am using ubuntu as os. for NS2 to implement a routing protocol in ns2. sujovasu Programming 1 07-27-2010 01:44 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 01:30 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration