

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、ns2_add_zbr(v001)_2021_12_18 ns2中zbr協(xié)議的添加 zbr路由協(xié)議添加的過程: 一、我們新建的協(xié)議名字就叫做zbr,以ns2.35平臺為例,把zbr文件放在ns2.35名目下。此目名目包含: zbr.h,zbr_packet.h,zbr_rtable.h,zbr_,zbr_,zbr_link.h,zbr_,zbr_rqueue.h九個文件。 二、我們需要對ns2中的一些文件進(jìn)行修改,來使這個協(xié)議在tcl中被調(diào)用,需要修改的文件有以下幾個: 你可以在ns-2.35名目下找到它們: common/packet.h trace/cmu-trace.h trace/ t
2、cl/lib/ns-packet.tcl tcl/lib/ns-default.tcl tcl/lib/ns-lib.tcl queue/ makefile 三、需要修改的詳細(xì)內(nèi)容 3.1、common/packet.h (兩個需要修改的地方,添加代碼) 第一個大約在202行: static const packet_t pt_mdart = 72; static const packet_t pt_zbr = 73; /新添加 static packet_t pt_ntype = 74; / 這一行必需為最終一行 = 其次個大約在421行: name_pt_dccp_reset=dccp_r
3、eset; name_pt_zbr= zbr; /新添加 name_pt_ntype= undefined; ns2中zbr協(xié)議的添加 3.2、trace/cmu-trace.h (一個需要修改的地方:添加代碼) 大約在165行: void format_mdart(packet *p, int offset); void format_zbr(packet *p, int offset); /新添加 / this holds all the tracers added at run-time static packettracer *pkttrc_; 3.3、trace/ (需要修改三個地方
4、) 第一個:在大約55行添加頭文件: #include zbr/zbr_packet.h = 其次個:找個合適的地方加上下面的函數(shù):可以在大約864行添加 void cmutrace:format_zbr(packet *p, int offset) struct hdr_zbr* zh = hdr_zbr(p); struct hdr_zbr_request *rq = hdr_zbr_request(p); struct hdr_zbr_reply *rp = hdr_zbr_reply(p); switch(zh-ah_type) case zbrtype_rreq: if (pt_-t
5、agged() sprintf(pt_-buffer() + offset, -zbr:t %x -zbr:h %d -zbr:b %d -zbr:d %d -zbr:ds %d -zbr:s %d -zbr:ss %d -zbr:c request , rq-rq_type, rq-rq_hop_count, rq-rq_bcast_id, rq-rq_dst, rq-rq_dst_seqno, rq-rq_src, rq-rq_src_seqno); else if (newtrace_) sprintf(pt_-buffer() + offset, -p zbr -pt 0x%x -ph
6、 %d -pb %d -pd %d -pds %d -ps %d -pss %d -pc request , ns2中zbr協(xié)議的添加 rq-rq_type, rq-rq_hop_count, rq-rq_bcast_id, rq-rq_dst, rq-rq_dst_seqno, rq-rq_src, rq-rq_src_seqno); else sprintf(pt_-buffer() + offset, 0x%x %d %d %d %d %d %d (request), rq-rq_type, rq-rq_hop_count, rq-rq_bcast_id, rq-rq_dst, rq-r
7、q_dst_seqno, rq-rq_src, rq-rq_src_seqno); break; case zbrtype_rrep: case zbrtype_hello: case zbrtype_rerr: if (pt_-tagged() sprintf(pt_-buffer() + offset, -zbr:t %x -zbr:h %d -zbr:d %d -zbr:ds %d -zbr:l %f -zbr:c %s , rp-rp_type, rp-rp_hop_count, rp-rp_dst, rp-rp_dst_seqno, rp-rp_lifetime, rp-rp_typ
8、e = aodvtype_rrep ? reply : (rp-rp_type = aodvtype_rerr ? error : hello); else if (newtrace_) sprintf(pt_-buffer() + offset, -p zbr -pt 0x%x -ph %d -pd %d -pds %d -pl %f -pc %s , rp-rp_type, ns2中zbr協(xié)議的添加 rp-rp_hop_count, rp-rp_dst, rp-rp_dst_seqno, rp-rp_lifetime, rp-rp_type = zbrtype_rrep ? reply :
9、 (rp-rp_type = zbrtype_rerr ? error : hello); else sprintf(pt_-buffer() + offset, 0x%x %d %d %d %f (%s), rp-rp_type, rp-rp_hop_count, rp-rp_dst, rp-rp_dst_seqno, rp-rp_lifetime, rp-rp_type = zbrtype_rrep ? reply : (rp-rp_type = zbrtype_rerr ? error : hello); break; default: #ifdef win32 fprintf(stde
10、rr, cmutrace:format_zbr: invalid zbr packet typen); #else fprintf(stderr, %s: invalid zbr packet typen, _function_); #endif abort(); = 第三個:在大約1529行添加 case pt_ping: break; case pt_zbr: /新添加 format_zbr(p, offset); /新添加 break; /新添加 case pt_arp: format_arp(p, offset); break; ns2中zbr協(xié)議的添加 3.4、tcl/lib/ns-
11、packet.tcl(需要修改一個:添加) 大約172行:添加: # wireless: arp # address resolution protocol, network wireless stack gaf # geographic adaptive delity, for ad-hoc networks ll # network wireless stack lrwpan # zheng, wpan/p802_15_ mac # network wireless stack zbr # zigbee 新添加 3.5、tcl/lib/ns-default.tcl(需要修改一個) 最終一行
12、添加: # defaults defined for zbr agent/zbr set accessible_var_ true 3.6、tcl/lib/ns-lib.tcl(需要修改兩個) 第一個:大約672行添加 zbr set ragent $self create-zbr-agent $node = 其次個:大約891行添加 simulator instproc create-zbr-agent node # create zbr routing agent set ragent new agent/zbr $node node-addr $self at 0.0 $ragent s
13、tart $node set ragent_ $ragent return $ragent 3.7、queue/(需要修改一個) 大約93行: case pt_aodv: case pt_zbr: /新添加 case pt_aomdv: ns2中zbr協(xié)議的添加 3.8、wpan/p802_15_4sscs.h(需要修改一個) 在大約57行,打開zigbeeif : #define zigbeeif 3.9、wpan/p802_15_(需要修改一個) 大約在179行添加 #ifdef zigbeeif bool nocapacity; int child_num; int logaddr; #endif /we assign the cluster tree address as the mac short address 3.10、makefile(需要修改一個) 修改 obj_cc = 大約在335行:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 助動車維修技術(shù)交流考核試卷
- 機(jī)器視覺與圖像處理技術(shù)考核試卷
- 智能儀器儀表項目規(guī)劃考核試卷
- 醫(yī)用針灸貼的種類和使用建議考核試卷
- 供應(yīng)鏈數(shù)字化轉(zhuǎn)型案例與啟示考核試卷
- 木紋設(shè)計與加工考核試卷
- 苗圃白蟻防治合同范本
- 留置權(quán)合同范本
- 業(yè)擴(kuò)報裝培訓(xùn)課件
- 8.3 摩擦力(共28張) 2024-2025學(xué)年人教版物理八年級下冊
- 中國思想史馬工程課件第一篇 先秦
- HY/T 081-2005紅樹林生態(tài)監(jiān)測技術(shù)規(guī)程
- Unit 3 Reading and Thinking 課件 【知識導(dǎo)航+拓展遷移】 高中英語人教版(2019)選擇性必修第二冊
- 幼兒園中班“建構(gòu)室”活動安排表(上學(xué)期和下學(xué)期)
- 農(nóng)村常用法律法規(guī)知識講座(適用村干部)專題培訓(xùn)課課件
- 部編版四年級語文下冊第13課《貓》課件
- 應(yīng)急投入及資源保障制度
- 壓裂評價中常見曲線分析
- (新版)網(wǎng)絡(luò)攻防知識考試題庫(含答案)
- 2023年湖北省技能高考文化綜合試題及答案
- 自然辯證法概論課件:第一章馬克思主義自然觀
評論
0/150
提交評論