如何在nam动画和命名中显示ns2节点的标签

时间:2014-01-26 15:42:16

标签: network-programming simulation ns2

我正在尝试在ns2中构建一个拓扑,它帮助我如果在nam动画中节点有名称,所以如果它们是核心交换机或集合或ToR,我可以更容易理解...

我正在使用循环创建它们并使用label属性设置标签。我的代码类似于以下

for {set i 0} {$i < 4} {incr i} {
    set c($i) [$ns node]
    $c($i) color red
    $c($i) shape hexagon
    $c($i) label "corei" 
    $c($i) label-color black
    $c($i) label-at up
}


$ns duplex-link $c(1) $c(2) 1Gb 10ms DropTail
$ns duplex-link $c(3) $c(2) 1Gb 10ms DropTail

但是当我运行它时,nam只显示带有数字的六边形,我认为这是一个内部计数。

任何想法我做错了什么?顺便说一句就行了

$c($i) label "corei"

如果是

那就工作
$c($i) label "core$i"

它不会产生任何错误,但就像我说没有标签

除此之外,我试图为我的节点使用像pod_layer_pos这样的命名格式,我在Tcl can't read variable: no such variable阅读帖子,但我想知道当使用数组时 - 关联 - 我是否可以在内部评估多个变量括号。例如,我可以拥有以下

$ns duplex-link $core($i) $pod($j_$k) 1Mb 10ms DropTail

通常是一种在命名约定中对节点集进行分组的特定方法。我在想的是胖树拓扑,所以对于k = 4,我们有4个核心交换机4个pod,有2层,每个有2个交换机,下层连接到2个服务器/主机。所以我想把核心放在一个数组中并使用循环与所有其余节点连接,其中名称就像是

  

荚[O-(K-1)] _层[0-1] _switch [0-K / 2]

以下似乎有效,但我想确保它不是侥幸

set p 0
set l 0
set s 0

set pod(0,0,0) [$ns node]
set pod(0,0,1) [$ns node]

for {set j 0} {$j < 1} {incr j} {
    $ns duplex-link $pod($p,$l,$j) $pod($p,$l,[expr ($j+1)]) 1Gb 10ms DropTail
}

1 个答案:

答案 0 :(得分:0)

$ns_ at $stime "$node_($src) label \"$label\""

$ns_ at 0.0 "$c($i) label \"corei\""