NS2中添加GPSR(KeLiu)协议

15 篇文章 1 订阅

说明:$HOME指当前用户所在目录。

1、在 $HOME/ns-allinone-2.30/ns-2.30下新建gpsr文件夹,并将GPSR-KeLiu中的
gpsr_packet.h,   gpsr_neighbor.h,   gpsr_neighbor.cc,   gpsr.h,  gpsr.cc,  gpsr.tcl, 
wireless-gpsr.tcl,  gpsr_sinklist.h, gpsr-sinklist.cc,  grid_deploy10x10.tcl,   cbr100.tcl加入刚新建的gpsr文件夹中。
2、进入$HOME/ns-allinone-2.30/ns-2.30/common, 修改packet.h
      在enum packet_t{
      增加 PT_GPSR  
      }
   class p_info {
    增加 name_[PT_GPSR]= “gpsr”
   }
3、进入$HOME/ns-allinone-2.30/ns-2.30/trace,修改 cmu-trace.cc
  (readme遗漏)增加 #include <gpsr/gpsr_packet.h>
在 void CMUTrace::format(Packet* p, const char *why) 
{
     增加 case PT_GPSR;
             break;
}

3、进入 $HOME/ns-allinone-2.30/ns-2.30/queue,修改priqueue.cc
void   PriQueue::recv(Packet *p, Handler *h) 
{
   增加  case PT_GPSR:

}

4、进入$HOME/ns-allinone-2.30/ns-2.30/tcl/lib, 修改ns-packet.tcl

 foreach prot{
   增加GPSR
 }

5、进入 $HOME/ns-allinone-2.30/ns-2.30/ ,修改Makefile 
在OBJ_STL =  的最后按照格式加入( gpsr前为TAB键而不是空格)
 gpsr/gpsr_neighbor.o\
 gpsr/gpsr_sinklist.o\
 gpsr/gpsr.o

如果需要加入调试信息,则在CCOPT =  -Wall 加上 -g,  如下:
      CCOPT =  -g  -Wall

6、重新编译,执行如下命令
cd $HOME/ns-allinone-2.30/ns-2.30/common
touch packet.cc
cd ..
make clean
make

7、在使用脚本wireless_gpsr.tcl进行场景仿真时,需要对 ns-2.30所在的路径进行修改
   将wireless_gpsr.tcl 中的将ns2home 修改成  $HOME/ns-allinone-2.30/ns-2.30/

如:

source ../gpsr.tcl 要改成如下
source /home/qq/ns-allinone-2.34/ns-2.34/gpsr/gpsr.tcl
 
/home/qq/是我的系统中的路径,这里需要改为在你的系统中的路径 
文中还有以下几处,都需要给出正确的绝对路径
source ../tcl/mobility/timer.tcl
source ../tcl/lib/ns-bsnode.tcl
source ../tcl/mobility/com.tcl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值