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。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)