TOP
|
[ 录入者:admin | 时间:2007-10-28 00:53:43
| 作者: | 来源:
| 浏览:1295次 ] |
网上有关于往NS2中添加新的路由协议的文章,却没有关于往NS2中添加新的MAC协议的文章。下面我给大家讲一下如何往NS2中添加新的MAC协议。 往NS2.29中添加了一个新的MAC协议,暂时命名为LMAC.其实它的代码内容和SMAC一样,我只是想验证一下如何在NS2.29中添加新的协议。 1.在~/ns-allinone-2.29/ns-2.29/mac目录下copy原来的smac.cc和smac.h cp smac.cc lmac.cc cp smac.h lmac.h
2.打开lmac.cc和lmac.h,把所有的SMAC替换成LMAC,把所有的smac替换成lmac,把所有的Smac替换成Lmac.
3.修改packet.h 打开packet.h,找到匹配字符串SMAC,然后照着样子修改就可以了。 packet.h在~/ns-allinone-2.29/ns-2.29/common目录下 添加定义访问协议报头的指针 #define HDR_SMAC(p) ((hdr_smac *)hdr_mac::access(p)) #define HDR_LMAC(p) ((hdr_lmac *)hdr_mac::access(p)) // add lmac here 增加LMAC包类型(协议标志),所有的包类型都是PT_开头,如PT_TCP,PT_UDP等,在枚举类型enum packet_t{}中找到 PT_SMAC, 添加LMAC // SMAC packet PT_SMAC, // LMAC packet PT_LMAC, 注意新添加的协议要在PT_NTYPE之前。 然后在类class p_info{}的构造函数中找到 name_[PT_SMAC]="smac"; 添加 name_[PT_LMAC]="lmac";这样就可以通过协议标识寻找协议对应的字符串 同样注意要在 name_[PT_NTYPE]= "undefined";之前定义
4.修改ns-default.tcl文件,在~/ns-allinone-2.29/ns-2.29/tcl/lib目录下 找到 # Turning on/off sleep-wakeup cycles for SMAC Mac/SMAC set syncFlag_ 1 # Nodes synchronize their schedules in SMAC Mac/SMAC set selfConfigFlag_ 1 # Default duty cycle in SMAC Mac/SMAC set dutyCycle_ 10 这里定义了otcl对象的缺省值,我们在这里添加LMAC的缺省值 #add LMAC here # Turning on/off sleep-wakeup cycles for LMAC Mac/LMAC set syncFlag_ 1 # Nodes synchronize their schedules in LMAC Mac/LMAC set selfConfigFlag_ 1 # Default duty cycle in LMAC Mac/LMAC set dutyCycle_ 10 继续寻找SMAC,找到 # Turning on/off sleep-wakeup cycles for SMAC Mac/SMAC set syncFlag_ 0 添加相应的LMAC # Turning on/off sleep-wakeup cycles for LMAC Mac/LMAC set syncFlag_ 0
5.修改ns-packet.tcl文件,在~/ns-allinone-2.29/ns-2.29/tcl/lib目录下 在foreach prot{}这个函数中找到Smac, Smac # Sensor-MAC 添加一行: Lmac # A new Sensor-MAC
6.修改Makefile文件,在~/ns-allinone-2.29/ns-2.29/目录下 找到smac.o mac/mac-802_3.o mac/mac-tdma.o mac/smac.o \ 添加lmac.o到ns的目标文件列表: mac/mac-802_3.o mac/mac-tdma.o mac/smac.o mac/lmac.o\
----------------------------- QQ:631305143 MSN:gmchen@hotmail.com EE Fudan University && Shanghai Jiao Tong University avid Research Fields: MAC Protocol in WSN, Cross Layer Optimization -----------------------------
|
|
|
|