进行多接口扩展需要进行的修改:
1, ns-lib.tcl
添加过程:
Simulator instproc channelNum {val} {
$self instvar channelNum_
set channelNum_ $val
}
说明:
channelnum_
是向
Simulator
类中添加的一个成员变量,代表可用的信道数目;有
了这个过程,那么就可以直接在
ns
的运行脚本中执行
channelNum
命令进行多接口扩展,
设置可用信道数,或者在
node-config
命令中添加参数:
-channelNum 12
。
添加过程:
Simulator instproc get-channelNum {} {
$self instvar channelNum_
if [ info exists channelNum_ ] {
return $channelNum_
} else {
return ""
}
}
说明:添加这个过程的目的是为了在非
Simulator
类中获得可用信道数目,而且还可以
通过返回的值(是否为空)来判断是否进行了多接口扩展。比如在
ns-mobilenode.tcl
的
过程中可以这样做:
set ns [Simulator instance]
set chnlNum [$ns get-channelNum]
if {$chnlNum == ""} {
#...
} else {
#
在此添加一些多接口扩展的修改
}
添加过程:
Simulator instproc add-channel {index chnl} {
$self instvar chan
set chan($index) $chnl
}
说明:
Simulator
类中有一个成员变量
chan
,代表该
Simulator
中使用的信道(应该被赋
值为
Mac
类的对象),如果不进行多接口扩展,那么它是一个单指,如果进行多接口扩