[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ns] topology generstor
Hi Vishnukant:
I am attaching an example script and the topology file that is sourced
from the main script. The script runs SRM for a topology of 50 nodes
using sessionSim, but this is actually irrelevant for you. I put some
comments in ss-50.tcl in the places I source the file and when I invoke
the function to create the topology.
Hope this helps.
Regards,
-Al
On Tue, 28 Mar 2000, Vishnukant Varma wrote:
>
> Hi Alberto,
> thanks for the prompt reply. Could you please help me a bit more..I tried
> including the file in my ns script but ns failed to recogonize the node
> variables of the "source" file. Maybe I am typing the syntax wrong. Can
> you send me a small example where your NS script uses a topology generated
> by sgb2ns? I would really appreciate that.
> Looking forward to your email,
> Regards,
> Vishnukant
>
> On Mon, 27 Mar 2000, Alberto Cerpa wrote:
>
> > Hi Vishnukant:
> >
> > The ITM software is in the gt-itm subdirectory of the ns distribution.
> > Check the README file to learn how to generate different types of
> > topologies and check out the examples. There is a file there call
> > Runconvert which basically call sgb2ns to transform the topologies in sgb
> > format to .tcl format.
> > Once you get the .tcl topology, from your ns tcl script do the following:
> >
> > source <name of your topo file here>.tcl
> >
> > and you are ready to go.
> >
> > Regards,
> > -Alberto.
> >
> > Vishnukant Varma wrote:
> >
> > > Hi,
> > > can anyone email me a sample tcl script which uses a topology generated
> > > by georgia tech's ITM software ?
> > > Thanks,
> > > Vishnukant
> > > --
> > > Vishnu Varma
> > > Department of Electrical and Computer Engineering,
> > > North Carolina State University,
> > > Raleigh,
> > > NC, USA.
> > >
> > > Residence:
> > > 636, Chappel Drive,
> > > Raleigh,
> > > North Carolina, USA
> > > Ph. (919) 833-5480
> > > Emails: [email protected]
> > > [email protected]
> > >
> > > Home Page:
> > > http://members.tripod.com/~vishnu_kant
> >
> >
>
> Vishnu Varma
> Department of Electrical and Computer Engineering,
> North Carolina State University,
> Raleigh,
> NC, USA.
>
> Residence:
> 636, Chappel Drive,
> Raleigh,
> North Carolina, USA
> Ph. (919) 833-5480
> Emails: [email protected]
> [email protected]
>
> Home Page:
> http://members.tripod.com/~vishnu_kant
>
>
set nmax 50
set srmStats [open srmStats.tr w]
set ns [new SessionSim]
# Here we source the topology file
source topos/r50-0.tcl
set group [Node allocaddr]
# Here we create the topology (from the r50-0.tcl file)
create-topology ns n 1.5Mb
# now the agents
set fid 0
for {set i 0} {$i < $nmax} {incr i} {
set srm($i) [new Agent/SRM/Deterministic]
$srm($i) set dst_addr_ $group
$srm($i) set fid_ [incr fid]
$srm($i) log $srmStats
$ns at 0.1 "$srm($i) start"
$ns attach-agent $n($i) $srm($i)
set sessionhelper($i) [$ns create-session $n($i) $srm($i)]
}
# And, finally, attach a data source to srm(1)
set packetSize 10
set s [new Application/Traffic/CBR]
$s set packet_size_ $packetSize
$s set interval_ 0.02
$s attach-agent $srm(1)
$srm(1) set tg_ $s
$srm(1) set app_fid_ 0
$srm(1) set packetSize_ $packetSize
$ns at 0.1 "$srm(1) start-source"
# SRMErrorModel takes arguments as pkt_type_, drop_cycle_, drop_offset_
# (chk errmodel.cc) every 10 srm data packets drop 1
set loss_module [new SRMErrorModel]
$loss_module drop-packet 2 200 1
$loss_module drop-target [$ns set nullAgent_]
#insert loss module to the link btw node1 and requester -need to modify
$ns insert-loss $loss_module $n(1) $n(8)
$ns at 4 "finish $s"
proc finish src {
$src stop
global ns srmStats srmEvents srm
$ns flush-trace ;# NB> Did not really close out.tr...:-)
close $srmStats
set avg_info [open ses-avg-info w]
puts $avg_info "avg:\trep-delay\treq-delay\trep-dup\t\treq-dup"
foreach index [lsort -integer [array name srm]] {
set tmplist [$srm($index) array get stats_]
puts $avg_info "$index\t[format %7.4f [lindex $tmplist 1]]\t\t[format %7.4f [lindex $tmplist 5]]\t\t[format %7.4f [lindex $tmplist 9]]\t\t[format %7.4f [lindex $tmplist 13]]"
}
flush $avg_info
close $avg_info
puts "running nam..."
exit 0
}
$ns run
# Generated by sgb2ns, created by Polly Huang
# GRAPH (#nodes #edges id uu vv ww xx yy zz):
# 50 114 geo(0,{50,50,3,0.033,0.000,0.000}) 50
proc create-topology {nsns node linkBW} {
upvar $node n
upvar $nsns ns
set verbose 1
if {$verbose} {
puts "creating nodes..."
}
for {set i 0} {$i < 50} {incr i} {
set n($i) [$ns node]
}
# EDGES (from-node to-node length a b):
if {$verbose} {
puts -nonewline "Creating links 0..."
flush stdout
}
$ns duplex-link-of-interfaces $n(0) $n(46) $linkBW 570ms DropTail
$ns duplex-link-of-interfaces $n(1) $n(8) $linkBW 220ms DropTail
$ns duplex-link-of-interfaces $n(2) $n(44) $linkBW 130ms DropTail
$ns duplex-link-of-interfaces $n(2) $n(38) $linkBW 220ms DropTail
$ns duplex-link-of-interfaces $n(2) $n(25) $linkBW 120ms DropTail
$ns duplex-link-of-interfaces $n(3) $n(34) $linkBW 180ms DropTail
$ns duplex-link-of-interfaces $n(3) $n(19) $linkBW 330ms DropTail
$ns duplex-link-of-interfaces $n(3) $n(10) $linkBW 270ms DropTail
$ns duplex-link-of-interfaces $n(3) $n(9) $linkBW 50ms DropTail
$ns duplex-link-of-interfaces $n(4) $n(20) $linkBW 390ms DropTail
if {$verbose} { puts -nonewline "10..."; flush stdout }
$ns duplex-link-of-interfaces $n(4) $n(9) $linkBW 120ms DropTail
$ns duplex-link-of-interfaces $n(5) $n(49) $linkBW 330ms DropTail
$ns duplex-link-of-interfaces $n(5) $n(38) $linkBW 200ms DropTail
$ns duplex-link-of-interfaces $n(5) $n(31) $linkBW 260ms DropTail
$ns duplex-link-of-interfaces $n(5) $n(13) $linkBW 220ms DropTail
$ns duplex-link-of-interfaces $n(6) $n(17) $linkBW 130ms DropTail
$ns duplex-link-of-interfaces $n(7) $n(26) $linkBW 180ms DropTail
$ns duplex-link-of-interfaces $n(7) $n(9) $linkBW 140ms DropTail
$ns duplex-link-of-interfaces $n(8) $n(30) $linkBW 120ms DropTail
$ns duplex-link-of-interfaces $n(10) $n(45) $linkBW 140ms DropTail
if {$verbose} { puts -nonewline "20..."; flush stdout }
$ns duplex-link-of-interfaces $n(10) $n(24) $linkBW 110ms DropTail
$ns duplex-link-of-interfaces $n(11) $n(44) $linkBW 340ms DropTail
$ns duplex-link-of-interfaces $n(11) $n(38) $linkBW 130ms DropTail
$ns duplex-link-of-interfaces $n(12) $n(42) $linkBW 350ms DropTail
$ns duplex-link-of-interfaces $n(12) $n(39) $linkBW 260ms DropTail
$ns duplex-link-of-interfaces $n(14) $n(45) $linkBW 290ms DropTail
$ns duplex-link-of-interfaces $n(14) $n(43) $linkBW 110ms DropTail
$ns duplex-link-of-interfaces $n(15) $n(19) $linkBW 230ms DropTail
$ns duplex-link-of-interfaces $n(15) $n(18) $linkBW 500ms DropTail
$ns duplex-link-of-interfaces $n(16) $n(45) $linkBW 530ms DropTail
if {$verbose} { puts -nonewline "30..."; flush stdout }
$ns duplex-link-of-interfaces $n(17) $n(37) $linkBW 120ms DropTail
$ns duplex-link-of-interfaces $n(17) $n(36) $linkBW 210ms DropTail
$ns duplex-link-of-interfaces $n(18) $n(23) $linkBW 390ms DropTail
$ns duplex-link-of-interfaces $n(18) $n(21) $linkBW 470ms DropTail
$ns duplex-link-of-interfaces $n(19) $n(48) $linkBW 130ms DropTail
$ns duplex-link-of-interfaces $n(19) $n(41) $linkBW 360ms DropTail
$ns duplex-link-of-interfaces $n(19) $n(28) $linkBW 290ms DropTail
$ns duplex-link-of-interfaces $n(20) $n(25) $linkBW 120ms DropTail
$ns duplex-link-of-interfaces $n(21) $n(41) $linkBW 430ms DropTail
$ns duplex-link-of-interfaces $n(21) $n(36) $linkBW 220ms DropTail
if {$verbose} { puts -nonewline "40..."; flush stdout }
$ns duplex-link-of-interfaces $n(22) $n(40) $linkBW 390ms DropTail
$ns duplex-link-of-interfaces $n(22) $n(29) $linkBW 290ms DropTail
$ns duplex-link-of-interfaces $n(24) $n(47) $linkBW 160ms DropTail
$ns duplex-link-of-interfaces $n(24) $n(44) $linkBW 130ms DropTail
$ns duplex-link-of-interfaces $n(24) $n(26) $linkBW 330ms DropTail
$ns duplex-link-of-interfaces $n(25) $n(42) $linkBW 200ms DropTail
$ns duplex-link-of-interfaces $n(25) $n(29) $linkBW 130ms DropTail
$ns duplex-link-of-interfaces $n(27) $n(44) $linkBW 170ms DropTail
$ns duplex-link-of-interfaces $n(30) $n(39) $linkBW 140ms DropTail
$ns duplex-link-of-interfaces $n(31) $n(46) $linkBW 290ms DropTail
if {$verbose} { puts -nonewline "50..."; flush stdout }
$ns duplex-link-of-interfaces $n(32) $n(48) $linkBW 250ms DropTail
$ns duplex-link-of-interfaces $n(33) $n(49) $linkBW 50ms DropTail
$ns duplex-link-of-interfaces $n(34) $n(36) $linkBW 270ms DropTail
$ns duplex-link-of-interfaces $n(35) $n(45) $linkBW 610ms DropTail
$ns duplex-link-of-interfaces $n(38) $n(48) $linkBW 20ms DropTail
$ns duplex-link-of-interfaces $n(38) $n(40) $linkBW 180ms DropTail
$ns duplex-link-of-interfaces $n(39) $n(40) $linkBW 90ms DropTail
if {$verbose} {
puts -nonewline "57..."
flush stdout
puts "starting"
}
return 50}