📄 ns-2.29.3-aodv-uu-0.9.2.patch
字号:
+ # dropped, since we've already handled them in the routing+ # agent at the entry.+ $dmux_ install [Node set rtagent_port_] $nullAgent_+ $dmux_ defaulttarget $nullAgent_++ return $self+}++Node/MobileNode/AODVNode instproc start-aodv {} {+ $self instvar ragent_+ $ragent_ start+}++Node/MobileNode/AODVNode instproc entry {} {+ $self instvar entry_point_+ return $entry_point_+}++Node/MobileNode/AODVNode instproc add-interface args {+ eval $self next $args++ $self instvar ragent_ ll_ mac_ ifq_++ set ns [Simulator instance]++ if { [Simulator set RouterTrace_] == "ON" } {+ # Send Target+ set sndT [$self mobility-trace Send "RTR"]+ set namfp [$ns get-nam-traceall]+ if {$namfp != "" } {+ $sndT namattach $namfp+ }+ $sndT target $ll_(0)+ $ragent_ add-ll $sndT + } else {+ # Send Target+ $ragent_ add-ll $ll_(0) + }++ $ragent_ if-queue $ifq_(0)+}++Node/MobileNode/AODVNode instproc reset args {+ $self instvar ragent_+ eval $self next $args+ $ragent_ reset+}diff -uprN ns-2.29.orig/tcl/lib/ns-packet.tcl ns-2.29/tcl/lib/ns-packet.tcl--- ns-2.29.orig/tcl/lib/ns-packet.tcl 2005-10-20 06:45:23.000000000 +0200+++ ns-2.29/tcl/lib/ns-packet.tcl 2006-07-15 15:53:26.000000000 +0200@@ -161,6 +161,7 @@ foreach prot { Mac # network wireless stack # Mobility, Ad-Hoc Networks, Sensor Nets: AODV # routing protocol for ad-hoc networks+ AODVUU # as above, but Uppsala University version Diffusion # diffusion/diffusion.cc IMEP # Internet MANET Encapsulation Protocol, for ad-hoc networks MIP # Mobile IP, mobile/mip-reg.ccdiff -uprN ns-2.29.orig/trace/cmu-trace.cc ns-2.29/trace/cmu-trace.cc--- ns-2.29.orig/trace/cmu-trace.cc 2005-10-20 06:45:25.000000000 +0200+++ ns-2.29/trace/cmu-trace.cc 2006-07-15 15:49:57.000000000 +0200@@ -51,6 +51,9 @@ #include <tora/tora_packet.h> //TORA #include <imep/imep_spec.h> // IMEP #include <aodv/aodv_packet.h> //AODV+#ifdef AODV_UU+#include <aodv-uu/ns/aodv-uu.h> // AODV-UU+#endif /* AODV_UU */ #include <cmu-trace.h> #include <mobilenode.h> #include <simulator.h>@@ -879,6 +882,170 @@ CMUTrace::format_aodv(Packet *p, int off abort(); } }+#ifdef AODV_UU+void CMUTrace::format_aodvuu(Packet *p, int offset) {++ struct hdr_ip *ih = HDR_IP(p);+ hdr_aodvuu *ah = HDR_AODVUU(p);+ AODV_msg *aodv_msg = (AODV_msg *) ah;++ RREQ *aodv_rreq = (RREQ *) aodv_msg;+ RREP *aodv_rrep = (RREP *) aodv_msg;+ RREP_ack *aodv_rrep_ack = (RREP_ack *) aodv_msg;+ RERR *aodv_rerr = (RERR *) aodv_msg;++ switch (aodv_msg->type) {++ case AODV_RREQ:++ if (pt_->tagged()) {+ // Tagged format currently not supported+ } else if (newtrace_) {++ sprintf(pt_->buffer() + offset,+ "-P aodvuu -Pt 0x%x -Ph %d -Pb %d -Pd %d -Pds %d -Ps %d -Pss %d -Pc REQUEST ",+ aodv_rreq->type,+ aodv_rreq->hcnt,+ aodv_rreq->rreq_id,+ (nsaddr_t) aodv_rreq->dest_addr,+ aodv_rreq->dest_seqno,+ (nsaddr_t) aodv_rreq->orig_addr,+ aodv_rreq->orig_seqno);++ } else {++ sprintf(pt_->buffer() + offset,+ "[0x%x %d %d [%d %d] [%d %d]] (REQUEST)",+ aodv_rreq->type,+ aodv_rreq->hcnt,+ ntohl(aodv_rreq->rreq_id),+ (nsaddr_t) aodv_rreq->dest_addr,+ aodv_rreq->dest_seqno,+ (nsaddr_t) aodv_rreq->orig_addr,+ aodv_rreq->orig_seqno);+ }++ break;++ case AODV_HELLO:++ /* FALLS THROUGH (HELLO:s are sent as RREP:s) */++ case AODV_RREP:++ if (pt_->tagged()) {+ // Tagged format currently not supported+ } else if (newtrace_) {++ sprintf(pt_->buffer() + offset,+ "-P aodvuu -Pt 0x%x -Ph %d -Pd %d -Pds %d -Ps %d -Pl %f -Pc %s ",+ aodv_rrep->type,+ aodv_rrep->hcnt,+ (nsaddr_t) aodv_rrep->dest_addr,+ aodv_rrep->dest_seqno,+ (nsaddr_t) aodv_rrep->orig_addr,+ (double) aodv_rrep->lifetime,+ (ih->daddr() == (nsaddr_t) AODV_BROADCAST &&+ ih->ttl() == 1) ? "HELLO" : "REPLY");+ } else {++ sprintf(pt_->buffer() + offset,+ "[0x%x %d [%d %d] [%d] %f] (%s)",+ aodv_rrep->type,+ aodv_rrep->hcnt,+ (nsaddr_t) aodv_rrep->dest_addr,+ aodv_rrep->dest_seqno,+ (nsaddr_t) aodv_rrep->orig_addr,+ (double) aodv_rrep->lifetime,+ (ih->daddr() == (nsaddr_t) AODV_BROADCAST &&+ ih->ttl() == 1) ? "HELLO" : "REPLY");+ }++ break;++ case AODV_RERR:++ /*+ Note 1:++ The "hop count" (-Ph and its corresponding field in+ the old trace format) is actually the DestCount.++ This is a reminiscence from the AODV trace format,+ where RREP:s, RERR:s and HELLO:s are treated equally+ in terms of logging.++ Note 2:++ Lifetime field does not exist for RERR:s.+ Again a reminiscence from the AODV trace format+ (where that field isn't even initialized!).+ Therefore lifetime is set to 0.0 all the time for RERR:s.+ */++ if (pt_->tagged()) {+ // Tagged format currently not supported+ } else if (newtrace_) {++ sprintf(pt_->buffer() + offset,+ "-P aodvuu -Pt 0x%x -Ph %d -Pd %d -Pds %d -Pl %f -Pc ERROR ",+ aodv_rerr->type,+ aodv_rerr->dest_count,+ (nsaddr_t) aodv_rerr->dest_addr,+ aodv_rerr->dest_seqno,+ 0.0);+ } else {++ sprintf(pt_->buffer() + offset,+ "[0x%x %d [%d %d] %f] (ERROR)",+ aodv_rerr->type,+ aodv_rerr->dest_count,+ (nsaddr_t) aodv_rerr->dest_addr,+ aodv_rerr->dest_seqno,+ 0.0);+ }++ break;++ case AODV_RREP_ACK:++ /*+ Note 3:++ RREP-ACK logging didn't exist in the AODV trace format.+ */++ if (pt_->tagged()) {+ // Tagged format currently not supported+ } else if (newtrace_) {++ sprintf(pt_->buffer() + offset,+ "-P aodvuu -Pt 0x%x RREP-ACK ",+ aodv_rrep_ack->type);+ } else {++ sprintf(pt_->buffer() + offset,+ "[%d] (RREP-ACK)",+ aodv_rrep_ack->type);+ }++ break;++ default:++#ifdef WIN32+ fprintf(stderr,+ "CMUTrace::format_aodvuu: invalid AODVUU packet type\n");+#else+ fprintf(stderr,+ "%s: invalid AODVUU packet type\n", __FUNCTION__);+#endif+ abort();++ break;+ }+}+#endif /* AODV_UU */ void CMUTrace::nam_format(Packet *p, int offset)@@ -1173,6 +1340,13 @@ void CMUTrace::format(Packet* p, const c break; case PT_GAF: case PT_PING:+#ifdef AODV_UU+ case PT_ENCAPSULATED:+ break;+ case PT_AODVUU:+ format_aodvuu(p, offset);+ break;+#endif /* AODV_UU */ break; default: /*<zheng: del -- there are many more new packet types added, like PT_EXP (poisson traffic belongs to this type)>diff -uprN ns-2.29.orig/trace/cmu-trace.h ns-2.29/trace/cmu-trace.h--- ns-2.29.orig/trace/cmu-trace.h 2005-10-20 06:45:25.000000000 +0200+++ ns-2.29/trace/cmu-trace.h 2006-07-15 15:48:52.000000000 +0200@@ -133,6 +133,9 @@ private: void format_tora(Packet *p, int offset); void format_imep(Packet *p, int offset); void format_aodv(Packet *p, int offset);+#ifdef AODV_UU+ void format_aodvuu(Packet *p, int offset);+#endif /* AODV_UU */ }; #endif /* __cmu_trace__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -