NS2_ADD_ZBR(V001)_2021_12_18_第1頁
NS2_ADD_ZBR(V001)_2021_12_18_第2頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論