ns2安装802.11p补丁包
2015-11-27 11:28
246 查看
通过NS2对802.11p协议进行仿真,在网上下载802.11p的补丁包后,覆盖原有的包后在终端下make后总是报错,经过大量尝试终于发现原因。主要是gcc和g++版本过高的原因导致。后来在虚拟机下安装Red Hat 企业版5,一次就make成功!
成功make后发现原先能运行的tcl脚本文件,重新运行会报错。通过代码对比软件会发现,作者在ns-2.34\tcl\lib下对两个文件ns-defaul.tcl和ns-lib.tcl中对802.11p协议进行了必要的添加。其中会发现
(1)Queue/DTail/PriQ set Prefer_Routing_Protocols 1
Queue/DTail/PriQ set Max_Levels 4
Queue/DTail/PriQ
set Levels 4
同时在ns-2.34\mac文件夹下会发现多了好多文件,其中就有d-tail.cc和priq.cc这几个文件
所以原先的脚本文件中的 set val(ifq) Queue/DropTail/PriQueue
改为 set val(ifq) Queue/DTail/PriQ
(2)#Adds support for different queuing models in 802.11p
# FULL = One IFQ per channel.
# ONE_ONE = One IFQ for the CCH and one for the remaining SCHs.
# UNIQUE = A single IFQ. For benchmarking purposes
Simulator instproc queueModel { val } { $self set queueModel_ $val }
而在ns-mobilenode.tcl文件下
if { $mactype == "Mac/802_11p" || $mactype == "Mac/802_11" } {
if { [ lsearch [ $ns info vars ] queueModel_ ] != -1 } {
set qmod [ $ns set queueModel_ ]
} else {
puts "Please declare a queue model for the WAVE node using -queueModel in node- config."
puts "Possible values are: 1 = FULL, 2 = ONE/ONE, 3 = UNIQUE."
return
}
如果[ lsearch [ $ns info vars ] queueModel_ ] =-1,终端则会报错Please declare a queue model for the WAVE
node using -queueModel in node- config.Possible values are: 1 = FULL, 2 = ONE/ONE, 3 = UNIQUE.
所以需要在脚本文件下添加 set val(queMod) 2
在配置无线节点处添加 -queueModel $val(queMod) \
成功make后发现原先能运行的tcl脚本文件,重新运行会报错。通过代码对比软件会发现,作者在ns-2.34\tcl\lib下对两个文件ns-defaul.tcl和ns-lib.tcl中对802.11p协议进行了必要的添加。其中会发现
(1)Queue/DTail/PriQ set Prefer_Routing_Protocols 1
Queue/DTail/PriQ set Max_Levels 4
Queue/DTail/PriQ
set Levels 4
同时在ns-2.34\mac文件夹下会发现多了好多文件,其中就有d-tail.cc和priq.cc这几个文件
所以原先的脚本文件中的 set val(ifq) Queue/DropTail/PriQueue
改为 set val(ifq) Queue/DTail/PriQ
(2)#Adds support for different queuing models in 802.11p
# FULL = One IFQ per channel.
# ONE_ONE = One IFQ for the CCH and one for the remaining SCHs.
# UNIQUE = A single IFQ. For benchmarking purposes
Simulator instproc queueModel { val } { $self set queueModel_ $val }
而在ns-mobilenode.tcl文件下
if { $mactype == "Mac/802_11p" || $mactype == "Mac/802_11" } {
if { [ lsearch [ $ns info vars ] queueModel_ ] != -1 } {
set qmod [ $ns set queueModel_ ]
} else {
puts "Please declare a queue model for the WAVE node using -queueModel in node- config."
puts "Possible values are: 1 = FULL, 2 = ONE/ONE, 3 = UNIQUE."
return
}
如果[ lsearch [ $ns info vars ] queueModel_ ] =-1,终端则会报错Please declare a queue model for the WAVE
node using -queueModel in node- config.Possible values are: 1 = FULL, 2 = ONE/ONE, 3 = UNIQUE.
所以需要在脚本文件下添加 set val(queMod) 2
在配置无线节点处添加 -queueModel $val(queMod) \
相关文章推荐
- CSS常见错误集锦(1)-关于外部样式表中background-image:url()的设置
- Linux tar命令
- LeetCode 114 Flatten Binary Tree to Linked List
- IPv4协议及VLSM可变长子网划分和CIDR无类域间路由
- Tomcat集群配置学习篇-----分布式应用
- 精通 JS正则表达式(转)
- Python运行出错情况
- Open_POJ C15C Rabbit's Festival
- AUTOTRACE Statistics常用列解释
- JAVA基础代码分享--DVD管理
- 关于Unsupported major.minor version 49.0的错误解决办法
- cut命令
- javascript:window.history.go(-1)
- 支持向量机SVM(四)
- [Built-in Functions] - P
- autotool,libtool实践二
- 数据库存取图片
- Qt使用教程之指定运行设置(二)
- spring配置packagesToScan的问题
- 支持向量机(三)核函数