📄 node456.html
字号:
<html><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><!--Converted with jLaTeX2HTML 2002 (1.62) JA patch-1.4patched version by: Kenshi Muto, Debian Project.LaTeX2HTML 2002 (1.62),original version by: Nikos Drakos, CBLU, University of Leeds* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan* with significant contributions from: Jens Lippmann, Marek Rouchal, Martin Wilck and others --><HTML><HEAD><TITLE>33.7.2.0.3 Advertising the Distance</TITLE><META NAME="description" CONTENT="33.7.2.0.3 Advertising the Distance"><META NAME="keywords" CONTENT="everything"><META NAME="resource-type" CONTENT="document"><META NAME="distribution" CONTENT="global"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"><META NAME="Generator" CONTENT="jLaTeX2HTML v2002 JA patch-1.4"><META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"><LINK REL="STYLESHEET" HREF="everything.css" tppabs="http://www.isi.edu/nsnam/ns/doc/everything.css"><LINK REL="previous" HREF="node455.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node455.html"><LINK REL="up" HREF="node453.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node453.html"><LINK REL="next" HREF="node457.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node457.html"></HEAD><BODY ><!--Navigation Panel--><A NAME="tex2html8389" HREF="node457.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node457.html"><IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="file:/usr/share/latex2html/icons/next.png"></A> <A NAME="tex2html8383" HREF="node453.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node453.html"><IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="file:/usr/share/latex2html/icons/up.png"></A> <A NAME="tex2html8379" HREF="node455.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node455.html"><IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="file:/usr/share/latex2html/icons/prev.png"></A> <A NAME="tex2html8385" HREF="node1.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node1.html"><IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="file:/usr/share/latex2html/icons/contents.png"></A> <A NAME="tex2html8387" HREF="node590.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node590.html"><IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="file:/usr/share/latex2html/icons/index.png"></A> <BR><B> Next:</B> <A NAME="tex2html8390" HREF="node457.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node457.html">33.8 SRM objects</A><B> Up:</B> <A NAME="tex2html8384" HREF="node453.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node453.html">33.7.2 Adaptive Timers</A><B> Previous:</B> <A NAME="tex2html8380" HREF="node455.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node455.html">33.7.2.0.2 Sending a Message</A>   <B> <A NAME="tex2html8386" HREF="node1.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node1.html">Contents</A></B>   <B> <A NAME="tex2html8388" HREF="node590.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node590.html">Index</A></B> <BR><BR><!--End of Navigation Panel--><H4><A NAME="SECTION06472030000000000000">33.7.2.0.3 Advertising the Distance</A></H4>Each agent must add additional information to each request/repairthat it sends out.The base SRMAgent../ns-2/srm.ccinvokes the virtual method[]addExtendedHeaders../ns-2/srm.hSRMAgent::addExtendedHeadersfor each SRM packet that it sends out.The method is invoked after adding the SRM packet headers, andbefore the packet is transmitted.The adaptive SRM agent overloads []addExtendedHeaders../ns-2/srm.hASRMAgent::addExtendedHeadersto specify its distances in the additional headers.When sending a request, that agent unequivocally knows theidentity of the sender.As an example, the definition of[]addExtendedHeaders for the adaptive SRM agent is:<PRE> void addExtendedHeaders(Packet* p) { SRMinfo* sp; hdr_srm* sh = (hdr_srm*) p-\>access(off_srm_); hdr_asrm* seh = (hdr_asrm*) p-\>access(off_asrm_); switch (sh-\>type()) { case SRM_RQST: sp = get_state(sh-\>sender()); seh-\>distance() = sp-\>distance_; break; \ldots } }</PRE><P>Similarly, the method[]parseExtendedHeaders../ns-2/srm.hASRMAgent::parseExtendedHeadersis invoked every time an SRM packet is received.It sets the agent member variable <TT>pdistance_</TT>to the distance advertised by the peer that sent the message.The member variable is bound to an instance variable of the same name,so that the peer distance can be accessedby the appropriate instance procedures.The corresponding []parseExtendedHeaders method for theAdaptive SRM agent is simply:<PRE> void parseExtendedHeaders(Packet* p) { hdr_asrm* seh = (hdr_asrm*) p-\>access(off_asrm_); pdistance_ = seh-\>distance(); }</PRE><P>Finally, the adaptive SRM agent's extended headers are defined ashdr_asrm../ns-2/srm.h.The header declaration is identical to declaring other packet headers in .Unlike most other packet headers, these are not automatically available in the packet.Theinterpreted constructor../ns-2/srm-adaptive.tclAgent/SRM/Adaptive::initfor the first adaptive agentwill add the header to the packet format.For example, the start of the constructor for the<TT>Agent/SRM/Adaptive</TT> agent is:<PRE> Agent/SRM/Adaptive set done_ 0 Agent/SRM/Adaptive instproc init args { if ![$class set done_] { set pm [[Simulator instance] set packetManager_] TclObject set off_asrm_ [$pm allochdr aSRM] $class set done_ 1 } eval $self next $args \ldots }</PRE><P><HR><!--Navigation Panel--><A NAME="tex2html8389" HREF="node457.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node457.html"><IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="file:/usr/share/latex2html/icons/next.png"></A> <A NAME="tex2html8383" HREF="node453.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node453.html"><IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="file:/usr/share/latex2html/icons/up.png"></A> <A NAME="tex2html8379" HREF="node455.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node455.html"><IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="file:/usr/share/latex2html/icons/prev.png"></A> <A NAME="tex2html8385" HREF="node1.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node1.html"><IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="file:/usr/share/latex2html/icons/contents.png"></A> <A NAME="tex2html8387" HREF="node590.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node590.html"><IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="file:/usr/share/latex2html/icons/index.png"></A> <BR><B> Next:</B> <A NAME="tex2html8390" HREF="node457.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node457.html">33.8 SRM objects</A><B> Up:</B> <A NAME="tex2html8384" HREF="node453.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node453.html">33.7.2 Adaptive Timers</A><B> Previous:</B> <A NAME="tex2html8380" HREF="node455.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node455.html">33.7.2.0.2 Sending a Message</A>   <B> <A NAME="tex2html8386" HREF="node1.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node1.html">Contents</A></B>   <B> <A NAME="tex2html8388" HREF="node590.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node590.html">Index</A></B> <!--End of Navigation Panel--><ADDRESS>2003-09-23</ADDRESS></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -