others其他

tips:

   

添加新的协议,其实有一个基本的死框架,我们按照框架写完后,再进行自己协议的编写。

   

死框架:

   

1、申明一个继承了Agent类的子类,实现其中的recv()方法,其他是自己实现的函数

   

2、利用TclClass进行C++OTCL进行绑定

   

3、申明一个包类型

   

4、将包类型的C++OTCL进行绑定,利用PacketHeaderClass 类来实现

   

5、注册包类型

   

以上5个步骤是一个死框架,其它我们需要的时候往里加即可;

   

————————————————

版权声明:本文为CSDN博主「铭记_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/lwb102063/article/details/50708621

   

在NS中添加一个新协议的步骤

1、在ns-2.x目录下创建协议名(CTAgg)目录,此目录中包含CTAgg.h CTAgg.cc CTAgg_pkt.h CTAgg_rtable.h CTAgg_rtable.cc五个文件。

2、撰写CTAgg_pkt.h,对数据包类型进行声明(修改common/pakcet.h文件中的枚举类型packet_t和类p_info)。绑定包头到TCL接口。 TAgg_rtable.cc五个文件。

3、撰写CTAgg.h。

4、撰写CTAgg.cc。

5、撰写CTAgg_rtable.h。操作路由表函数的声明。 .h CTAgg.cc CTAgg_pk

6、撰写CTAgg_rtable.cc。操作路由表函数的实现。

7、跟踪支持,修改trace/cmu-trace.h和trace/cmu-trace.cc。 在CMUTrace类中实现void format_CTAgg(Packet *p, int offset)函数,需要加入#include 。 CTAgg)目录,此目录中包含CTAgg

8、修改TCL库,tcl/lib/ns-packet.tcl中的foreach prot{} tcl/lib/ns-default.tcl中添加Agent/Protoname set accessible_var_ true tcl/lib/ns-lib.tcl中的create-wireless-node函数中添加.h CTAgg.cc CTAgg_pk Protoname { set ragent [$self create-CTAgg-agent $node] }t.h CTAgg_rtable.h C tcl/lib/ns-lib.tcl中添加函数create-CTAgg-agent

9、修改队列优先级,修改queue/priqueue.cc中的recv()函数。

10、修改Makefile。

   

来自 <https://blog.csdn.net/charming520/article/details/4215418?locationNum=8&fps=1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.essearch_pc_relevant&spm=1001.2101.3001.4242>

posted @   atomxing  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示