您的位置:首页 > 其它

ns2.35下gpsr协议移植

2016-04-06 18:10 323 查看
一、下载gpsr协议源码,在~/ns-allinone-2.35/ns-2.35下解压,得到gpsr文件夹。

源码地址:点击打开链接

7个为协议实现文件:

gpsr_packet.h: definition of packets of different type used by thisimplementaion

gpsr_neighbor.h : definition of the neighbor listof each node used by this gpsr implementation
including the planaringprocedure

(both GG and RNG)

gpsr_neighbor.cc : theimplementation of the neighbor list class

gpsr.h : thedefinition of functions of GPSR routing agent of thisimplementation

gpsr.cc : the implementation of the GPSR routingagent

gpsr_sinklist.h: definition used for scenarios withmultiple sinks

gpsr_sinklist.cc:implementation of gpsr_sinklist.cc

以下4个文件为仿真所需文件

gpsr.tcl: the node and agent creation functions used by simultionconfiguration
in wireless-gpsr.tcl

wireless-gpsr.tcl : thesimulation configuration

grid-deploy10x10.tcl: 100 nodes in a 200x200 meter area

cbr100.tcl: node 99 sends cbr traffic on UDP to node 0

二、修改packet.h

进入~/ns-allinone-2.35/ns-2.35/common文件夹,打开packet.h文件,增加一行:

staticconst packet_t PT_GPSR = 73

三、修改trace/cmu-trace.cc

进入~/ns-allinone-2.35/ns-2.35/trace,打开cmu-trace.cc文件。

在65行左右增加一行:

#include<gpsr/gpsr_packet.h>

在voidCMUTrace::format(Packet
*p, const char *why){}中第1460行左右增加2行:

casePT_GPSR:

break;

四、修改priqueue.cc

进入~/ns-allinone-2.35/ns-2.35/queue文件夹,打开priqueue.cc文件。

在voidPriQueue::rece(Packet
*p, Handler *h){}中第95行附近增加一行:

casePT_GPSR:

五、修改ns-packet.tclns-lib.tcl

在~/ns-allinone-2.35/ns-2.35/tcl/lib文件夹,打开ns-packet.tcl文件。

在setprotolist{}中174行附近加入一行

GPSR

六、修改Makefile

在~/ns-allinone-2.35/ns-2.35,打开Makefile

在OBJ_CC=的最后加入<
a8d3
br />

gpsr/gpsr_neighbor.ogpsr/gpsr_sinklist.o gpsr/gpsr.o \

注意:每个【.o】后均有一个空格,包括最后一个【gpsr.o】

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

CCOPT= -g -Wall

七、重新编译

cd ~/ns-allinone-2.35/ns-2.35/common
touch packet.cc
cd ..
make clean
make 注意:()

八、 运行仿真

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: