This document is based on Hyacinth NS2 code and is inspired from the following tutorials:
1. Make “hyacinth” run on Debian NS-2.29.2
2. A new one for hyacinth for NS-2.29
3. Extend NS2 to support multi-channel multi-interface for wireless networks
The purpose of this document is to show how to make “Multi-channel Multi-interface” work in NS-2.29. All the code is from Hyacinth implementation and the above tutorials. Simulation results for validating the extension are also provided.
=============Table of Contents=============
Multi-channel Multi-interface Extension
1. Modifications in tcl/lib/ns-lib.tcl
2. Modifications in tcl/lib/ns-mobilenode.tcl
3. Modifications in mac/arp.cc
4. Modifications in mac/channel.h
5. Modifications in mac/channel.cc
6. Modifications in mac/mac-802_11.cc
Use Multi-channel Multi-interface — Manual Routing Protocol (proposed in Hyacinth)
7. Modifications in tcl/lib/ns-lib.tcl
8. Modifications in tcl/lib/ns-mobilenode.tcl
9. Modifications in common/packet.h
10. Modifications in apps/udp.h
11. Modifications in apps/udp.cc
12. Modifications in tcp/tcp.h
13. Modifications in tcp/tcp.cc
14. Modifications in tcp/tcp-sink.h
15. Modifications in tcp/tcp-sink.cc
16. Manual routing protocol implmentation and NS2 configuration
Simuilation Results
17. Simulation results for validating the extension
转自
您好
有一些問題想請教您
同樣的我將NS2.29照著上面的教學修改
然後我去跑Hyacinth底下的multich-tag.tcl或是上面教學的實驗時
卻都出現錯誤導致所產生的.tr .nam都是0kb
以下錯誤內容show出來
num_nodes is set 25
(_o1015 cmd line 1)
invoked from within
“_o1015 cmd addr”
invoked from within
“catch “$self cmd $args” ret”
invoked from within
“if [catch "$self cmd $args" ret] {
set cls [$self info class]
global errorInfo
set savedInfo $errorInfo
error “error when calling class $cls: $args” $…”
(procedure “_o1015″ line 2)
(SplitObject unknown line 2)
invoked from within
“_o1015 addr”
(”eval” body line 1)
invoked from within
“eval $node addr $args”
(”default” arm line 2)
invoked from within
“switch -exact $routingAgent_ {
DSDV {
set ragent [$self create-dsdv-agent $node]
}
DSR {
$self at 0.0 “$node start-dsr”
}
AODV {
set ragent [$self cre..."
(procedure "_o3" line 11)
(Simulator create-wireless-node line 11)
invoked from within
"_o3 create-wireless-node"
("eval" body line 1)
invoked from within
"eval $self create-wireless-node $args"
(procedure "_o3" line 23)
(Simulator node line 23)
invoked from within
"$ns_ node"
invoked from within
"set node_(0) [$ns_ node]”
(file “channel-route.tcl” line 6)
invoked from within
“source.orig channel-route.tcl”
(”uplevel” body line 1)
invoked from within
“uplevel source.orig [list $fileName]”
invoked from within
“if [$instance_ is_http_url $fileName] {
set buffer [$instance_ read_url $fileName]
uplevel eval $buffer
} else {
uplevel source.orig [list $fileName]
…”
(procedure “source” line
invoked from within
“source channel-route.tcl”
(file “multich-tag.tcl” line 124)
不知道您是否有遇過跟我同樣的情況?
你好,不好意思才看到你的留言,我的博客迁到dobby143.com了,所以这里不来看了.
你的问题我没有遇到, 无论是multich-tag.tcl还是twoflows-2channel.tcl都没错.
建议你仔细查一下修改的地方对不对,特别是空格, tab这类东西很烦人.而且貌似2.29有3个版本.我用的是2.29.3.