⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testnvns.tcl

📁 it is very important
💻 TCL
字号:
# Test the "ghost" ns with a grid topology# Usage:#    testnsg myid numsys grid-width#      myid = my node it (0 .. (numsys-1))#      numsys = number of participating simulators#      grid-width = number of nodes on the grid in x-direction#          (y direction assumed same, square grid).proc cbr-pair { source peer } {    global ns n    set cbr [new Agent/CBR/UDP]    set exp [new Traffic/Expoo]    set sink [$ns set nullAgent_]    $ns attach-agent $n($source) $cbr    $ns attach-agent $n($peer)  $sink    $exp set packet-size 500    $exp set rate 100Kb    $exp set idle-time 0.1    $exp set burst-time 0.1    $cbr attach-traffic $exp    $ns connect $cbr $sink    $ns at 0.0 "$cbr start"}if {[llength $argv] < 1} {    puts "Usage: testnsg grid-width"    exit 0}set gridx  [lindex $argv 0]set ns [new Simulator]$ns set-nix-routingset nodecnt [expr $gridx * $gridx]set nf [open testnvns.nam w]$ns namtrace-all $nfset tf [open testnvns.tr w]$ns trace-all $tfset linkdelay 0.020set diagonaldelay [expr $linkdelay * (sqrt(2.0))]# Create the nodesfor { set i 0 } { $i < $nodecnt } { incr i } {    set n($i) [$ns node]}# Create the linksfor { set i 0 } { $i < $nodecnt } { incr i } {    # Set false for neighbor exists (used for diagonals)    set nbr 0    set nbl 0     set nbb 0     set nbt 0     if [expr ($i % $gridx) != 0] {        # Create left neighbor        # Actually, don't create, we just use right and top        #set nb [expr $i - 1]        #$ns duplex-link    $n($i) $n($nb) 1.5Mb $linkdelay DropTail        #$ns duplex-link-op $n($i) $n($nb) orient left        set nbl 1    }    if [expr ($i % $gridx) != ($gridx - 1)] {        # Create right neighbor        set nb [expr $i + 1]        $ns duplex-link    $n($i) $n($nb) 1.5Mb $linkdelay DropTail        $ns duplex-link-op $n($i) $n($nb) orient right        set nbr 1    }    if [expr $i >= $gridx] {        # Create bottom neighbor        #set nb [expr $i - $gridx]        #$ns duplex-link    $n($i) $n($nb) 1.5Mb $linkdelay DropTail        #$ns duplex-link-op $n($i) $n($nb) orient down        set nbb 1    }    if [expr $i < ($nodecnt - $gridx)] {        # Create top neighbor        set nb [expr $i + $gridx]        $ns duplex-link    $n($i) $n($nb) 1.5Mb $linkdelay DropTail        $ns duplex-link-op $n($i) $n($nb) orient up        set nbt 1    }    if [expr $nbr && $nbt] {        # Create right-up diagonal        set nb [expr $i + 1 + $gridx];        $ns duplex-link    $n($i) $n($nb) 1.5Mb $diagonaldelay DropTail        $ns duplex-link-op $n($i) $n($nb) orient right-up    }    if [expr $nbl && $nbt] {        # Create left-up diagnoal        set nb [expr $i - 1 + $gridx];        $ns duplex-link    $n($i) $n($nb) 1.5Mb $diagonaldelay DropTail        $ns duplex-link-op $n($i) $n($nb) orient left-up    }}# Now define the flows# node 0 sends to all "edge" nodes on right col and top row# first do right columnfor { set i 0 } { $i < $gridx } { incr i } {    set nb [expr ($i+1) * $gridx - 1]    cbr-pair 0 $nb}# Then top rowfor { set i 0 } { $i < $gridx } { incr i } {    set nb [expr $gridx*$gridx - $i - 1]    cbr-pair 0 $nb}$ns at 2.0 "$ns halt"$ns run

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -