Linux - SoftwareThis 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.
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.
i am new to aqua sim. I want to write a tcl code which use DBR as a routing protocol. i searched for finding such codes but I couldn't find any. I would really appreciate it if you would be so kind as to guide me or send me one, please.
i am new to aqua sim. I want to write a tcl code which use DBR as a routing protocol. i searched for finding such codes but I couldn't find any. I would really appreciate it if you would be so kind as to guide me or send me one, please.
Sorry, that's not the way things work. This is a community forum, not a place to come for free, personalized one-on-one tech support by email.
Aqua-sim enable us to use ns for simulate underwater protocols. If you install the package then you have DBR and VBF and ... as a routing protocol. It doesn't need to write the codes your self.
HI
Aqua-sim enable us to use ns for simulate underwater protocols. If you install the package then you have DBR and VBF and ... as a routing protocol. It doesn't need to write the codes your self.
Right...so again, if you want "codes" for DBR, you will have to write them yourself, as there don't appear to be any pre-existing ones. But if you say it PROVIDES the codes, and then say you don't need to write them, what exactly is the point of your original question and follow-up???
Right...so again, if you want "codes" for DBR, you will have to write them yourself, as there don't appear to be any pre-existing ones. But if you say it PROVIDES the codes, and then say you don't need to write them, what exactly is the point of your original question and follow-up???
yes, DBR is a routing protocol and you can use it in tcl script as you can use for example AODV but I can't write such tcl script. I changed an example for vbf routing. the changhed example is as following:
set opt(chan) Channel/UnderwaterChannel
set opt(prop) Propagation/UnderwaterPropagation
set opt(netif) Phy/UnderwaterPhy
set opt(mac) Mac/UnderwaterMac/BroadcastMac
set opt(ifq) Queue/DropTail/PriQueue
set opt(ll) LL
set opt(energy) EnergyModel
set opt(txpower) 2.0
set opt(rxpower) 0.75
set opt(initialenergy) 10000
set opt(idlepower) 0.008
set opt(ant) Antenna/OmniAntenna
set opt(filters) GradientFilter ;# options can be one or more of
;# TPP/OPP/Gear/Rmst/SourceRoute/Log/TagFilter
set opt(minspeed) 0 ;#minimum speed of node
set opt(maxspeed) 3 ;#maximum speed of node
set opt(speed) 0.5 ;#speed of node
set opt(position_update_interval) 0.3 ;# the length of period to update node's position
set opt(packet_size) 50 ;#50 bytes
set opt(routing_control_packet_size) 20 ;#bytes
set opt(ifqlen) 50 ;# max queue length in if
set opt(nn) 6 ;# number of nodes
set opt(x) 1000 ;# X dimension of the topography
set opt(y) 10 ;# Y dimension of the topography
set opt(z) 10
set opt(seed) 11
set opt(stop) 500 ;# simulation time
set opt(prestop) 90 ;# time to prepare to stop
set opt(tr) "a.tr" ;# trace file
set opt(datafile) "a.data"
set opt(nam) "a.nam" ;# nam file
#*********************************Melease change next line***************
#set opt(adhocRouting) Vectorbasedforward
set opt(adhocRouting) DBR
#*********************************Me:width is for vbf and we didn't need it in dbr ***************
#set opt(width) 100
set opt(interval) 10.0
set opt(range) 100 ;#range of each node in meters
if { $argc > 0 } {
set opt(seed) [lindex $argv 0]
set opt(nn) [lindex $argv 1]
set opt(datafile) [lindex $argv 2]
}
puts "the file name is $opt(datafile)"
puts "the sending interval is $opt(interval)"
LL set mindelay_ 50us
LL set delay_ 25us
LL set bandwidth_ 0 ;# not used
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 Z_ 0.05
Antenna/OmniAntenna set Gt_ 1.0
Antenna/OmniAntenna set Gr_ 1.0
#********************************* Melease omit the next line, you don't need it for dbr ***************
#Agent/Vectorbasedforward set hop_by_hop_ 0
Mac/UnderwaterMac set bit_rate_ 1.0e4 ;#10kbps
Mac/UnderwaterMac set encoding_efficiency_ 1
Mac/UnderwaterMac/BroadcastMac set packetheader_size_ 0 ;# #of bytes
# Initialize the SharedMedia interface with parameters to make
# it work like the 914MHz Lucent WaveLAN DSSS radio interface
Phy/UnderwaterPhy set CPThresh_ 10 ;#10.0
Phy/UnderwaterPhy set CSThresh_ 0 ;#1.559e-11
Phy/UnderwaterPhy set RXThresh_ 0 ;#3.652e-10
#Phy/WirelessPhy set Rb_ 2*1e6
Phy/UnderwaterPhy set Pt_ 0.2818
Phy/UnderwaterPhy set freq_ 25 ;# 25khz
Phy/UnderwaterPhy set K_ 2.0 ;# spherical spreading
# =================================================================
# Main Program
# =================================================================
#
# Initialize Global Variables
#
#set sink_ 1
set ns_ [new Simulator]
set topo [new Topography]
#********************************* Melease omit the next line, you don't need it for dbr ***************
#puts "Width=$opt(width)"
#Set the Sink node
set node_(0) [ $ns_ node 0]
$node_(0) set sinkStatus_ 1
$god_ new_node $node_(0)
$node_(0) set X_ 500
$node_(0) set Y_ 0
$node_(0) set Z_ 0
$node_(0) set passive 1
set rt [$node_(0) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
set a_(0) [new Agent/UWSink]
$ns_ attach-agent $node_(0) $a_(0)
#***********Me: see ns2.30/tcl/lib/ns-agent.tcl for more infrormation about UWSink and attach-vectorbasedforward.********
#***********Me: I have one question, shouldn't I add a function in ns-agent.tcl for depth of node for dbr usage?*************
#$a_(0) attach-vectorbasedforward $opt(width)
$a_(0) cmd set-range $opt(range)
$a_(0) cmd set-target-x -20
$a_(0) cmd set-target-y -10
$a_(0) cmd set-target-z -20
$a_(0) cmd set-filename $opt(datafile)
$a_(0) cmd set-packetsize $opt(packet_size) ;# # of bytes
set node_(1) [ $ns_ node 1]
$node_(1) set sinkStatus_ 1
$god_ new_node $node_(1)
$node_(1) set X_ 440
$node_(1) set Y_ 0
$node_(1) set Z_ 0
$node_(1) set passive 1
set rt [$node_(1) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
$node_(1) set max_speed $opt(maxspeed)
$node_(1) set min_speed $opt(minspeed)
$node_(1) set position_update_interval_ $opt(position_update_interval)
set a_(1) [new Agent/UWSink]
$ns_ attach-agent $node_(1) $a_(1)
#***********Me: see ns2.30/tcl/lib/ns-agent.tcl for more infrormation about UWSink and attach-vectorbasedforward.********
#***********Me: I have one question, shouldn't I add a function in ns-agent.tcl for depth of node for dbr usage?*************
set node_(2) [ $ns_ node 2]
$node_(2) set sinkStatus_ 1
$node_(2) random-motion 1
$node_(2) set max_speed $opt(maxspeed)
$node_(2) set min_speed $opt(minspeed)
$node_(2) set position_update_interval_ $opt(position_update_interval)
$god_ new_node $node_(2)
$node_(2) set X_ 380
$node_(2) set Y_ 0
$node_(2) set Z_ 0
$node_(2) set passive 1
set rt [$node_(2) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
set a_(2) [new Agent/UWSink]
$ns_ attach-agent $node_(2) $a_(2)
#***********Me: see ns2.30/tcl/lib/ns-agent.tcl for more infrormation about UWSink and attach-vectorbasedforward.********
#***********Me: I have one question, shouldn't I add a function in ns-agent.tcl for depth of node for dbr usage?*************
#$a_(2) attach-vectorbasedforward $opt(width)
$a_(2) cmd set-range $opt(range)
$a_(2) cmd set-target-x -20
$a_(2) cmd set-target-y -10
$a_(2) cmd set-target-z -20
$a_(2) cmd set-filename $opt(datafile)
$a_(2) cmd set-packetsize $opt(packet_size) ;# # of bytes
#$node_(2) move
set node_(3) [ $ns_ node 3]
$node_(3) set sinkStatus_ 1
$node_(3) random-motion 1
$node_(3) set max_speed $opt(maxspeed)
$node_(3) set min_speed $opt(minspeed)
$node_(3) set position_update_interval_ $opt(position_update_interval)
$god_ new_node $node_(3)
$node_(3) set X_ 320
$node_(3) set Y_ 0
$node_(3) set Z_ 0
$node_(3) set passive 1
set rt [$node_(3) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
set a_(3) [new Agent/UWSink]
$ns_ attach-agent $node_(3) $a_(3)
#***********Me: see ns2.30/tcl/lib/ns-agent.tcl for more infrormation about UWSink and attach-vectorbasedforward.********
#***********Me: I have one question, shouldn't I add a function in ns-agent.tcl for depth of node for dbr usage?*************
#$a_(3) attach-vectorbasedforward $opt(width)
$a_(3) cmd set-range $opt(range)
$a_(3) cmd set-target-x -20
$a_(3) cmd set-target-y -10
$a_(3) cmd set-target-z -20
$a_(3) cmd set-filename $opt(datafile)
$a_(3) cmd set-packetsize $opt(packet_size) ;# # of bytes
set node_(4) [ $ns_ node 4]
$node_(4) set sinkStatus_ 1
$node_(4) random-motion 1
$node_(4) set max_speed $opt(maxspeed)
$node_(4) set min_speed $opt(minspeed)
$node_(4) set position_update_interval_ $opt(position_update_interval)
$god_ new_node $node_(4)
$node_(4) set X_ 260
$node_(4) set Y_ 0
$node_(4) set Z_ 0
$node_(4) set passive 1
set rt [$node_(4) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
set a_(4) [new Agent/UWSink]
$ns_ attach-agent $node_(4) $a_(4)
#***********Me: see ns2.30/tcl/lib/ns-agent.tcl for more infrormation about UWSink and attach-vectorbasedforward.********
#***********Me: I have one question, shouldn't I add a function in ns-agent.tcl for depth of node for dbr usage?*************
#$a_(4) attach-vectorbasedforward $opt(width)
$a_(4) cmd set-range $opt(range)
$a_(4) cmd set-target-x -20
$a_(4) cmd set-target-y -10
$a_(4) cmd set-target-z -20
$a_(4) cmd set-filename $opt(datafile)
$a_(4) cmd set-packetsize $opt(packet_size) ;# # of bytes
#Set the source node
set node_($total_number) [$ns_ node $total_number]
$god_ new_node $node_($total_number)
$node_($total_number) set sinkStatus_ 1
$node_($total_number) set X_ 200
$node_($total_number) set Y_ 0
$node_($total_number) set Z_ 0
$node_($total_number) set-cx 200
$node_($total_number) set-cy 0
$node_($total_number) set-cz 0
set rt [$node_($total_number) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
set a_($total_number) [new Agent/UWSink]
$ns_ attach-agent $node_($total_number) $a_($total_number)
#***********Me: see ns2.30/tcl/lib/ns-agent.tcl for more infrormation about UWSink and attach-vectorbasedforward.********
#***********Me: I have one question, shouldn't I add a function in ns-agent.tcl for depth of node for dbr usage?*************
#$a_($total_number) attach-vectorbasedforward $opt(width)
$a_($total_number) cmd set-range $opt(range)
$a_($total_number) cmd set-target-x 500
$a_($total_number) cmd set-target-y 0
$a_($total_number) cmd set-target-z 0
$a_($total_number) cmd set-filename $opt(datafile)
$a_($total_number) cmd set-packetsize $opt(packet_size) ;# # of bytes
$a_($total_number) set data_rate_ [expr 1.0/$opt(interval)]
# make nam workable
set node_size 10
for {set k 0} { $k<$opt(nn)} {incr k} {
$ns_ initial_node_pos $node_($k) $node_size
}
set opt(stop2) [expr $opt(stop)+200]
puts "Node $total_number is sending first!!"
$ns_ at 1.33 "$a_($total_number) cbr-start"
$ns_ at $opt(stop).001 "$a_($total_number) terminate"
$ns_ at $opt(stop2).002 "$a_(0) terminate"
$ns_ at $opt(stop2).003 "$god_ compute_energy"
$ns_ at $opt(stop2).004 "$ns_ nam-end-wireless $opt(stop)"
$ns_ at $opt(stop2).005 "puts \"NS EXISTING...\"; $ns_ halt"
puts $data "New simulation...."
#*********************************Me:width is for vbf and we didn't need it in dbr, please change the next line ***************
# puts $data "nodes = $opt(nn), maxspeed = $opt(maxspeed), minspeed = $opt(minspeed), random_seed = $opt(seed), sending_interval_=$opt(interval), width=$opt(width)"
puts $data "nodes = $opt(nn), maxspeed = $opt(maxspeed), minspeed = $opt(minspeed), random_seed = $opt(seed), sending_interval_=$opt(interval))"
puts $data "x= $opt(x) y= $opt(y) z= $opt(z)"
close $data
puts "starting Simulation..."
$ns_ run
but when I run it, it says:
the file name is a.data
the sending interval is 10.0
num_nodes is set 6
INITIALIZE THE LIST xListHead
Node 5 is sending first!!
starting Simulation...
GOD: the old file name istest.data
GOD: the new file name isa.data
Segmentation fault
I SAid I need an example of using DBR in tcl to compare with mine. I don't know why the segmentation fault occure. when I run the unchanged code, it runs without any problem.
if you need to see dbr.cc code or the others code just let me know please. Thanks in advance.
yes, DBR is a routing protocol and you can use it in tcl script as you can use for example AODV but I can't write such tcl script. I changed an example for vbf routing. the changhed example is as following:
I said I need an example of using DBR in tcl to compare with mine. I don't know why the segmentation fault occure. when I run the unchanged code, it runs without any problem.
Yes, and as I said, there don't appear to be any, and that you are going to have to write your own. The only way to make it work is for you to learn the language, and work through the errors, the same as everyone else would.
Quote:
if you need to see dbr.cc code or the others code just let me know please. Thanks in advance.
We will be glad to assist...is the code you posted above exactly like you've run it?
Hi,my question is about my DBR & VBF TCL script.when I run VBF it says
invalid command name "Agent/Vectorbasedforward"
while executing
"Agent/Vectorbasedforward set hop_by_hop_0"
And when I run DBR it says:
invalid command name "Mac/UnderwaterMac"
while executing
"Mac/UnderwaterMac set bit_rate_1.0e4"
I searched a lot but I could not find the problem,I will be thankful if you help me and tell me what should I do?
I have another request.I need TCL script for any underwater routing protocol.Thanks a lot for your help
This is VBF tcl script:
set opt(chan) Channel/UnderwaterChannel
set opt(prop) Propagation/UnderwaterPropagation
set opt(netif) Phy/UnderwaterPhy
set opt(mac) Mac/UnderwaterMac/BroadcastMac
set opt(ifq) Queue/DropTail/PriQueue
set opt(ll) LL
set opt(energy) EnergyModel
set opt(txpower) 2.0
set opt(rxpower) 0.75
set opt(initialenergy) 10000
set opt(idlepower) 0.008
set opt(ant) Antenna/OmniAntenna
set opt(filters) GradientFilter ;# options can be one or more of
;# TPP/OPP/Gear/Rmst/SourceRoute/Log/TagFilter
set opt(minspeed) 0 ;#minimum speed of node
set opt(maxspeed) 3 ;#maximum speed of node
set opt(speed) 0.5 ;#speed of node
set opt(position_update_interval) 0.3 ;# the length of period to update node's position
set opt(packet_size) 50 ;#50 bytes
set opt(routing_control_packet_size) 20 ;#bytes
set opt(ifqlen) 50 ;# max queue length in if
set opt(nn) 6 ;# number of nodes
set opt(x) 1000 ;# X dimension of the topography
set opt(y) 10 ;# Y dimension of the topography
set opt(z) 10
set opt(seed) 11
set opt(stop) 500 ;# simulation time
set opt(prestop) 90 ;# time to prepare to stop
set opt(tr) "a.tr" ;# trace file
set opt(datafile) "a.data"
set opt(nam) "a.nam" ;# nam file
set opt(adhocRouting) Vectorbasedforward;
set opt(width) 100
set opt(interval) 10.0
set opt(range) 100 ;#range of each node in meters
if { $argc > 0 } {
set opt(seed) [lindex $argv 0]
set opt(nn) [lindex $argv 1]
set opt(datafile) [lindex $argv 2]
}
puts "the file name is $opt(datafile)"
puts "the sending interval is $opt(interval)"
# ==================================================================
LL set mindelay_ 50us
LL set delay_ 25us
LL set bandwidth_ 0 ;# not used
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 Z_ 0.05
Antenna/OmniAntenna set Gt_ 1.0
Antenna/OmniAntenna set Gr_ 1.0
Agent/Vectorbasedforward set hop_by_hop_0
Mac/UnderwaterMac set bit_rate_ 1.0e4 ;#10kbps
Mac/UnderwaterMac set encoding_efficiency_ 1
Mac/UnderwaterMac/BroadcastMac set packetheader_size_ 0 ;# #of bytes
# Initialize the SharedMedia interface with parameters to make
# it work like the 914MHz Lucent WaveLAN DSSS radio interface
Phy/UnderwaterPhy set CPThresh_ 10 ;#10.0
Phy/UnderwaterPhy set CSThresh_ 0 ;#1.559e-11
Phy/UnderwaterPhy set RXThresh_ 0 ;#3.652e-10
#Phy/WirelessPhy set Rb_ 2*1e6
Phy/UnderwaterPhy set Pt_ 0.2818
Phy/UnderwaterPhy set freq_ 25 ;# 25khz
Phy/UnderwaterPhy set K_ 2.0 ;# spherical spreading
# =================================================================
# Main Program
# =================================================================
#
# Initialize Global Variables
#
#set sink_ 1
set ns_ [new Simulator]
set topo [new Topography]
set node_(0) [ $ns_ node 0]
$node_(0) set sinkStatus_ 1
$god_ new_node $node_(0)
$node_(0) set X_ 500
$node_(0) set Y_ 0
$node_(0) set Z_ 0
$node_(0) set passive 1
set rt [$node_(0) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
set node_(1) [ $ns_ node 1]
$node_(1) set sinkStatus_ 1
$god_ new_node $node_(1)
$node_(1) set X_ 440
$node_(1) set Y_ 0
$node_(1) set Z_ 0
$node_(1) set passive 1
set rt [$node_(1) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
$node_(1) set max_speed $opt(maxspeed)
$node_(1) set min_speed $opt(minspeed)
$node_(1) set position_update_interval_ $opt(position_update_interval)
set a_(1) [new Agent/UWSink]
$ns_ attach-agent $node_(1) $a_(1)
$a_(1) attach-vectorbasedforward $opt(width)
$a_(1) cmd set-range $opt(range)
$a_(1) cmd set-target-x -20
$a_(1) cmd set-target-y -10
$a_(1) cmd set-target-z -20
$a_(1) cmd set-filename $opt(datafile)
$a_(1) cmd set-packetsize $opt(packet_size) ;# # of bytes
#$node_(1) move
set node_(2) [ $ns_ node 2]
$node_(2) set sinkStatus_ 1
$node_(2) random-motion 1
$node_(2) set max_speed $opt(maxspeed)
$node_(2) set min_speed $opt(minspeed)
$node_(2) set position_update_interval_ $opt(position_update_interval)
$god_ new_node $node_(2)
$node_(2) set X_ 380
$node_(2) set Y_ 0
$node_(2) set Z_ 0
$node_(2) set passive 1
set rt [$node_(2) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
#Set the source node
set node_($total_number) [$ns_ node $total_number]
$god_ new_node $node_($total_number)
$node_($total_number) set sinkStatus_ 1
$node_($total_number) set X_ 200
$node_($total_number) set Y_ 0
$node_($total_number) set Z_ 0
$node_($total_number) set-cx 200
$node_($total_number) set-cy 0
$node_($total_number) set-cz 0
set rt [$node_($total_number) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
This is DBR tcl script:
set opt(chan) Channel/UnderwaterChannel
set opt(prop) Propagation/UnderwaterPropagation
set opt(netif) Phy/UnderwaterPhy
set opt(mac) Mac/UnderwaterMac/BroadcastMac
set opt(ifq) Queue/DropTail/PriQueue
set opt(ll) LL
set opt(energy) EnergyModel
set opt(txpower) 2.0
set opt(rxpower) 0.75
set opt(initialenergy) 10000
set opt(idlepower) 0.008
set opt(ant) Antenna/OmniAntenna
set opt(filters) GradientFilter ;# options can be one or more of
;# TPP/OPP/Gear/Rmst/SourceRoute/Log/TagFilter
set opt(minspeed) 0 ;#minimum speed of node
set opt(maxspeed) 3 ;#maximum speed of node
set opt(speed) 0.5 ;#speed of node
set opt(position_update_interval) 0.3 ;# the length of period to update node's position
set opt(packet_size) 50 ;#50 bytes
set opt(routing_control_packet_size) 20 ;#bytes
set opt(ifqlen) 50 ;# max queue length in if
set opt(nn) 6 ;# number of nodes
set opt(x) 1000 ;# X dimension of the topography
set opt(y) 10 ;# Y dimension of the topography
set opt(z) 10
set opt(seed) 11
set opt(stop) 500 ;# simulation time
set opt(prestop) 90 ;# time to prepare to stop
set opt(tr) "a.tr" ;# trace file
set opt(datafile) "a.data"
set opt(nam) "a.nam" ;# nam file
set opt(adhocRouting) DBR
set opt(interval) 10.0
set opt(range) 100 ;#range of each node in meters
if { $argc > 0 } {
set opt(seed) [lindex $argv 0]
set opt(nn) [lindex $argv 1]
set opt(datafile) [lindex $argv 2]
}
puts "the file name is $opt(datafile)"
puts "the sending interval is $opt(interval)"
LL set mindelay_ 50us
LL set delay_ 25us
LL set bandwidth_ 0 ;# not used
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 Z_ 0.05
Antenna/OmniAntenna set Gt_ 1.0
Antenna/OmniAntenna set Gr_ 1.0
Mac/UnderwaterMac set bit_rate_ 1.0e4 ;#10kbps
Mac/UnderwaterMac set encoding_efficiency_ 1
Mac/UnderwaterMac/BroadcastMac set packetheader_size_ 0 ;# #of bytes
# Initialize the SharedMedia interface with parameters to make
# it work like the 914MHz Lucent WaveLAN DSSS radio interface
Phy/UnderwaterPhy set CPThresh_ 10 ;#10.0
Phy/UnderwaterPhy set CSThresh_ 0 ;#1.559e-11
Phy/UnderwaterPhy set RXThresh_ 0 ;#3.652e-10
#Phy/WirelessPhy set Rb_ 2*1e6
Phy/UnderwaterPhy set Pt_ 0.2818
Phy/UnderwaterPhy set freq_ 25 ;# 25khz
Phy/UnderwaterPhy set K_ 2.0 ;# spherical spreading
# =================================================================
# Main Program
# =================================================================
#
# Initialize Global Variables
#
#set sink_ 1
set ns_ [new Simulator]
set topo [new Topography]
set node_(0) [ $ns_ node 0]
$node_(0) set sinkStatus_ 1
$god_ new_node $node_(0)
$node_(0) set X_ 500
$node_(0) set Y_ 0
$node_(0) set Z_ 0
$node_(0) set passive 1
set rt [$node_(0) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
set node_(1) [ $ns_ node 1]
$node_(1) set sinkStatus_ 1
$god_ new_node $node_(1)
$node_(1) set X_ 440
$node_(1) set Y_ 0
$node_(1) set Z_ 0
$node_(1) set passive 1
set rt [$node_(1) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
$node_(1) set max_speed $opt(maxspeed)
$node_(1) set min_speed $opt(minspeed)
$node_(1) set position_update_interval_ $opt(position_update_interval)
set a_(1) [new Agent/UWSink]
$ns_ attach-agent $node_(1) $a_(1)
$a_(1) cmd set-range $opt(range)
$a_(1) cmd set-target-x -20
$a_(1) cmd set-target-y -10
$a_(1) cmd set-target-z -20
$a_(1) cmd set-filename $opt(datafile)
$a_(1) cmd set-packetsize $opt(packet_size) ;# # of bytes
#$node_(1) move
set node_(2) [ $ns_ node 2]
$node_(2) set sinkStatus_ 1
$node_(2) random-motion 1
$node_(2) set max_speed $opt(maxspeed)
$node_(2) set min_speed $opt(minspeed)
$node_(2) set position_update_interval_ $opt(position_update_interval)
$god_ new_node $node_(2)
$node_(2) set X_ 380
$node_(2) set Y_ 0
$node_(2) set Z_ 0
$node_(2) set passive 1
set rt [$node_(2) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
#Set the source node
set node_($total_number) [$ns_ node $total_number]
$god_ new_node $node_($total_number)
$node_($total_number) set sinkStatus_ 1
$node_($total_number) set X_ 200
$node_($total_number) set Y_ 0
$node_($total_number) set Z_ 0
$node_($total_number) set-cx 200
$node_($total_number) set-cy 0
$node_($total_number) set-cz 0
set rt [$node_($total_number) set ragent_]
$rt set control_packet_size $opt(routing_control_packet_size)
I use ns-allinone-2.28,can the problem caused because of its version?
Some sites recommended to add init_tk at the first of the line in which error occurred,but it could not help me at all.
Thanks for your attention.
Hello to all
I want to create a linear topology which every one send own traffic to sink
but i can't understand how can i define a sink and how can i say to nodes that send their packet to sink
set a_(4) [new Agent/UWSink]
set a_(3) [new Agent/UWSink]
set a_(2) [new Agent/UWSink]
,.......
another problem is how can i get total throughput of my scenario
thanks to all.
Hi,
I have a question about ns2.30.I tried to install ns2.30 on windows (with cygwin).
when I want to make ns it gives me these erors:
configure:error:Installation of tcl seems incomplete or can not be found automatically.
Please correct the problem by telling configure where tcl is
using the argument --with-tcl=/path/to/package
<perhaps after installing it>,
or the package is not required, disable it with --with-tcl=no.
Makefile.in is newer than makefile.
You need to re-run configure.
false
make: *** [Makefile] Error 1
Makefile.in is newer than Makefile.
You need to re-run configure.
false
make: *** [Makefile] Error 1
I will be thankfull if anyone can help me.
Distribution: PCLinuxOS2023 Fedora38 + 50+ other Linux OS, for test only.
Posts: 17,519
Rep:
Posts #9, #12 : Don't use color for a text, please edit.
Color is for a few words. And please edit the posts to use code tags:
Write [/code] at code end, and [code] at code text start. Like this :
A Makefile will be created, when you have tcl tk otcl tclcl in place.
That's what ns-allinone-2.30 takes care of : Installing the files in
locations inside ns-allinone-2.30, so ns etc. know where to find them.
An alien Makefile won't do : Only the one created on your OS will fit.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.