ns2.35下gpsr协议移植

本文详细介绍了如何在ns2.35环境下移植GPSR协议,包括下载源码、修改packet.h、cmu-trace.cc、priqueue.cc、ns-packet.tcl、ns-lib.tcl文件,以及更新Makefile并重新编译,最后进行仿真运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、下载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=的最后加入

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 
注意:()

八、 运行仿真



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值