From 08e8705d2b736dbdb9068aab0feebb6f10584188 Mon Sep 17 00:00:00 2001 From: John Abraham Date: Thu, 15 Aug 2013 09:48:40 -0700 Subject: [PATCH] Bug 1190 - Suppress hello if bcast was sent within the last hello interval --- src/aodv/model/aodv-routing-protocol.cc | 87 ++++++++++++------ src/aodv/model/aodv-routing-protocol.h | 4 + .../test/aodv-chain-regression-test-0-0.pcap | Bin 6718 -> 6418 bytes .../test/aodv-chain-regression-test-1-0.pcap | Bin 8824 -> 8480 bytes .../test/aodv-chain-regression-test-2-0.pcap | Bin 8350 -> 7450 bytes .../test/aodv-chain-regression-test-3-0.pcap | Bin 7392 -> 7292 bytes .../test/aodv-chain-regression-test-4-0.pcap | Bin 5050 -> 5050 bytes src/aodv/test/aodv-regression.cc | 4 +- src/aodv/test/bug-606-test-0-0.pcap | Bin 5452 -> 5252 bytes src/aodv/test/bug-606-test-1-0.pcap | Bin 6788 -> 6368 bytes src/aodv/test/bug-606-test-2-0.pcap | Bin 4890 -> 4790 bytes src/aodv/test/udp-chain-test-0-0.pcap | Bin 35532 -> 35532 bytes src/aodv/test/udp-chain-test-9-0.pcap | Bin 19034 -> 18954 bytes 13 files changed, 63 insertions(+), 32 deletions(-) diff --git a/src/aodv/model/aodv-routing-protocol.cc b/src/aodv/model/aodv-routing-protocol.cc index 5b24341c1..d4683fb48 100644 --- a/src/aodv/model/aodv-routing-protocol.cc +++ b/src/aodv/model/aodv-routing-protocol.cc @@ -147,12 +147,10 @@ RoutingProtocol::RoutingProtocol () : m_rerrCount (0), m_htimer (Timer::CANCEL_ON_DESTROY), m_rreqRateLimitTimer (Timer::CANCEL_ON_DESTROY), - m_rerrRateLimitTimer (Timer::CANCEL_ON_DESTROY) + m_rerrRateLimitTimer (Timer::CANCEL_ON_DESTROY), + m_lastBcastTime (Seconds (0)) { - if (EnableHello) - { - m_nb.SetCallback (MakeCallback (&RoutingProtocol::SendRerrWhenBreaksLinkToNextHop, this)); - } + m_nb.SetCallback (MakeCallback (&RoutingProtocol::SendRerrWhenBreaksLinkToNextHop, this)); } TypeId @@ -334,6 +332,7 @@ RoutingProtocol::RouteOutput (Ptr p, const Ipv4Header &header, NS_LOG_FUNCTION (this << header << (oif ? oif->GetIfIndex () : 0)); if (!p) { + NS_LOG_DEBUG("Packet is == 0"); return LoopbackRoute (header, oif); // later } if (m_socketAddresses.empty ()) @@ -368,6 +367,7 @@ RoutingProtocol::RouteOutput (Ptr p, const Ipv4Header &header, // routed to loopback, received from loopback and passed to RouteInput (see below) uint32_t iif = (oif ? m_ipv4->GetInterfaceForDevice (oif) : -1); DeferredRouteOutputTag tag (iif); + NS_LOG_DEBUG ("Valid Route not found"); if (!p->PeekPacketTag (tag)) { p->AddPacketTag (tag); @@ -903,19 +903,18 @@ RoutingProtocol::SendRequest (Ipv4Address dst) destination = iface.GetBroadcast (); } NS_LOG_DEBUG ("Send RREQ with id " << rreqHeader.GetId () << " to socket"); - socket->SendTo (packet, 0, InetSocketAddress (destination, AODV_PORT)); + m_lastBcastTime = Simulator::Now (); + Simulator::Schedule (Time (MilliSeconds (m_uniformRandomVariable->GetInteger (0, 10))), &RoutingProtocol::SendTo, this, socket, packet, destination); } ScheduleRreqRetry (dst); - if (EnableHello) - { - if (!m_htimer.IsRunning ()) - { - m_htimer.Cancel (); - m_htimer.Schedule (HelloInterval - Time (0.01 * MilliSeconds (m_uniformRandomVariable->GetInteger (0, 10)))); - } - } } +void +RoutingProtocol::SendTo (Ptr socket, Ptr packet, Ipv4Address destination) +{ + socket->SendTo (packet, 0, InetSocketAddress (destination, AODV_PORT)); + +} void RoutingProtocol::ScheduleRreqRetry (Ipv4Address dst) { @@ -1101,7 +1100,32 @@ RoutingProtocol::RecvRequest (Ptr p, Ipv4Address receiver, Ipv4Address s toOrigin.SetLifeTime (std::max (Time (2 * NetTraversalTime - 2 * hop * NodeTraversalTime), toOrigin.GetLifeTime ())); m_routingTable.Update (toOrigin); + //m_nb.Update (src, Time (AllowedHelloLoss * HelloInterval)); } + + + RoutingTableEntry toNeighbor; + if (!m_routingTable.LookupRoute (src, toNeighbor)) + { + NS_LOG_DEBUG ("Neighbor:" << src << " not found in routing table. Creating an entry"); + Ptr dev = m_ipv4->GetNetDevice (m_ipv4->GetInterfaceForAddress (receiver)); + RoutingTableEntry newEntry (dev, src, false, rreqHeader.GetOriginSeqno (), + m_ipv4->GetAddress (m_ipv4->GetInterfaceForAddress (receiver), 0), + 1, src, ActiveRouteTimeout); + m_routingTable.AddRoute (newEntry); + } + else + { + toNeighbor.SetLifeTime (ActiveRouteTimeout); + toNeighbor.SetValidSeqNo (false); + toNeighbor.SetSeqNo (rreqHeader.GetOriginSeqno ()); + toNeighbor.SetFlag (VALID); + toNeighbor.SetOutputDevice (m_ipv4->GetNetDevice (m_ipv4->GetInterfaceForAddress (receiver))); + toNeighbor.SetInterface (m_ipv4->GetAddress (m_ipv4->GetInterfaceForAddress (receiver), 0)); + m_routingTable.Update (toNeighbor); + } + m_nb.Update (src, Time (AllowedHelloLoss * HelloInterval)); + NS_LOG_LOGIC (receiver << " receive RREQ with hop count " << static_cast(rreqHeader.GetHopCount ()) << " ID " << rreqHeader.GetId () << " to destination " << rreqHeader.GetDst ()); @@ -1170,16 +1194,9 @@ RoutingProtocol::RecvRequest (Ptr p, Ipv4Address receiver, Ipv4Address s { destination = iface.GetBroadcast (); } - socket->SendTo (packet, 0, InetSocketAddress (destination, AODV_PORT)); - } + m_lastBcastTime = Simulator::Now (); + Simulator::Schedule (Time (MilliSeconds (m_uniformRandomVariable->GetInteger (0, 10))), &RoutingProtocol::SendTo, this, socket, packet, destination); - if (EnableHello) - { - if (!m_htimer.IsRunning ()) - { - m_htimer.Cancel (); - m_htimer.Schedule (HelloInterval - Time (0.1 * MilliSeconds (m_uniformRandomVariable->GetInteger (0, 10)))); - } } } @@ -1539,10 +1556,20 @@ void RoutingProtocol::HelloTimerExpire () { NS_LOG_FUNCTION (this); - SendHello (); + Time offset = Time (Seconds (0)); + if (m_lastBcastTime > Time (Seconds (0))) + { + offset = Simulator::Now () - m_lastBcastTime; + NS_LOG_DEBUG ("Hello deferred due to last bcast at:" << m_lastBcastTime); + } + else + { + SendHello (); + } m_htimer.Cancel (); - Time t = Time (0.01 * MilliSeconds (m_uniformRandomVariable->GetInteger (0, 100))); - m_htimer.Schedule (HelloInterval - t); + Time diff = HelloInterval - offset; + m_htimer.Schedule (std::max (Time (Seconds (0)), diff)); + m_lastBcastTime = Time (Seconds (0)); } void @@ -1598,7 +1625,8 @@ RoutingProtocol::SendHello () { destination = iface.GetBroadcast (); } - socket->SendTo (packet, 0, InetSocketAddress (destination, AODV_PORT)); + Time jitter = Time (MilliSeconds (m_uniformRandomVariable->GetInteger (0, 10))); + Simulator::Schedule (jitter, &RoutingProtocol::SendTo, this , socket, packet, destination); } } @@ -1757,7 +1785,7 @@ RoutingProtocol::SendRerrMessage (Ptr packet, std::vector p Ptr socket = FindSocketWithInterfaceAddress (toPrecursor.GetInterface ()); NS_ASSERT (socket); NS_LOG_LOGIC ("one precursor => unicast RERR to " << toPrecursor.GetDestination () << " from " << toPrecursor.GetInterface ().GetLocal ()); - socket->SendTo (packet, 0, InetSocketAddress (precursors.front (), AODV_PORT)); + Simulator::Schedule (Time (MilliSeconds (m_uniformRandomVariable->GetInteger (0, 10))), &RoutingProtocol::SendTo, this, socket, packet, precursors.front ()); m_rerrCount++; } return; @@ -1790,8 +1818,7 @@ RoutingProtocol::SendRerrMessage (Ptr packet, std::vector p { destination = i->GetBroadcast (); } - socket->SendTo (packet, 0, InetSocketAddress (destination, AODV_PORT)); - m_rerrCount++; + Simulator::Schedule (Time (MilliSeconds (m_uniformRandomVariable->GetInteger (0, 10))), &RoutingProtocol::SendTo, this, socket, packet, destination); } } diff --git a/src/aodv/model/aodv-routing-protocol.h b/src/aodv/model/aodv-routing-protocol.h index c56237f79..fac4ba2b1 100644 --- a/src/aodv/model/aodv-routing-protocol.h +++ b/src/aodv/model/aodv-routing-protocol.h @@ -248,6 +248,8 @@ private: void SendRerrWhenNoRouteToForward (Ipv4Address dst, uint32_t dstSeqNo, Ipv4Address origin); //\} + void SendTo (Ptr socket, Ptr packet, Ipv4Address destination); + /// Hello timer Timer m_htimer; /// Schedule next send of hello message @@ -269,6 +271,8 @@ private: /// Provides uniform random variables. Ptr m_uniformRandomVariable; + /// Keep track of the last bcast time + Time m_lastBcastTime; }; } diff --git a/src/aodv/test/aodv-chain-regression-test-0-0.pcap b/src/aodv/test/aodv-chain-regression-test-0-0.pcap index 4b41d0aa378be64bf240bb8e5dd1835ee8989ee2..c5edd7e394723442d181496dcde0eb7dd0642ea4 100644 GIT binary patch delta 954 zcmZuwO=uHA7@eI>c6O89WNq`a!IW+gYf&20KQES;h}H^P6msZ6rHU;c#6wZ2q9qj( z#Y@r$MSE%5LJvhSf}kKsz1XUt6^gW0u!5k1l?EBvL9^W@_9<>ZL zWy10tBNz0S zr^Q}vk;~e+;)v3P#j=^cG-TNL=IE6>RtVmQY)niTWl~CGKkGr2nm`Au!b!D{*4HD?LfKI!<*-Xh$`70p?y{p8(duwSGvpL;Von=I zLH%=%8GhVw4WifO#YXozn)Chbhwe7u)EcqscE~wRsMMNiGBqXh4XI==Au*z0nMIM( z>&(pBLW(f%;m4>xXfCfW#EfCON-%3&E_Q(MJQX}xxbAIx*^Aiie*pA%>OH) z6}5kPlNj+PaM~m0&>-gEnB+myjI2j#w*${i`#<jJU*lnUfQ)RTo2yexD(?5FPno4K#m< z7Pgm6e7<;*`KkGD#u@hbcPk>#^_z+-ed{w&6KJLRou!`J{y1ZtAfCuqe-s}B&1 z193%Ew{#&Lw6PEn)*HC>4%(IGkO&#tf&z8JvYMF6$@dew2nupR1DC8;**q@(`IBQ% fEpeqfI+ZBXIQ3A?I`$Em~sf%UWycPcquW|~O delta 1022 zcmZuwT}V@582-L*+c{@v=bRn)caETL3mQZ)H(h^-r%g(PU`%EtSRzs(7=aLEwNffV zstdO#EV_y=q(nroLI|j%Lp;c3Cd3=9!|P;BH`xO2r*Ri6+@6 z1+z4Ur>qW9D&Pw>*o2A!uPG4zhBRowINDf_jcOI43a)4sw zx)h`1NJ}|P`gXt)rg2jY;J47@8fMix??@J1> z)08zyb)|?0%fTexNQvM$nVE5Mw?qyT(nEONSuA*q==WyzQ_1Q-w=zo@Ql=Q874<4B z^f|ou{VLuE(xRQ){5Y3TQ`;*U18OgA!<2qU_Bxr7pi9+_RA~DWZL(IN8FbofvR-W)v?!h zMWL8B%#X@walQ;T`_XMC@x*9lOEzm9@62|QkDgrL?TGTD88LHgqF_tv^K{elrHJNe Pd;dr4*{uNv#?9nk7&P>a diff --git a/src/aodv/test/aodv-chain-regression-test-1-0.pcap b/src/aodv/test/aodv-chain-regression-test-1-0.pcap index 80a643ce571b595cc0f3993b46916434823f5ec1..7f42fb015a54121eb6a3e627f1a2a839c3c0205c 100644 GIT binary patch delta 1309 zcmaJ>TWB0r7@qlOcV=fZvom|k&XT>HZAooW*9}_*F^RiUW7EnSF-RVyT>>sBNb;ah zDK;Sww%)qK2dma#)>uW>qWh*TRP&%VebE#VvQ;671TRqAmo!DZoSAf&L}(snV9s~G z%Y6Tt**H*tsG6X%&rVh7*B%^6GW&xe8t%8RR;ctc&Wj~_=M^j}2|9lYlM2H@%Bnw} z5`==lFI<-6c$2bpvWlE;VU;{IZ)1(d=@T1AqL$2e2@k%@nQ?nw!3il##RWXYS;xJK zXrd+EO^+{tby;8@4}HIYvppF+;wjSU_d1H}UpstEhzeGuAX=WJYF%t6=u_jcyjl9{ zVrT!&C6r=J%;6>P)1+SNsK2$+&T*HVrMVW*QKGZ0PR`LQUun9v7g;wgS(?G$*`)G?)N_(Shi9B8lK&4SYb z9jzXXr#T$1ZZ}n&qjMqr1fC5SuoBdzQ9;3o5yiLR8T5xXpUaUNT@$boIfF*nz(>&+ zZpFY{RL5{ggX-_abhn3s2ijps5HT3)SDbR|>w?pXS>NiN6MSffvN#yq1AojhQt@J} zW}4!*iKuRx`>mq*B&Mv)ZDIOQ!ZC~89`93j#_uzC#;>xS@s)i$&b5SxH*KewxxBTy{eotfVi-uKY4RRdwUii? zy z*gA>*LeTLPSz1~;uHk4hZBB2;yYPB4i3t`}eB7Z>)SQ{)N?OOK>|W_aS;J*D9jI<4 fs7|PXO-h3qn91a&)hU;PKxXhiDvn(@ delta 1386 zcmZWpO>7%Q7@eJ6d%gCqch~m%C;r(5+HffwCrzqK1b1BlB^06n7NEAIv?A_-A|eh! z>H(4hRaF&;`=kg?ji8OHh(i^j3aU!v0#vG0azFx!Ljt9jR*F*K&U0V=UvIds-DF!`RxW_&o?R| z0s9TmujVi%`E;L#jc8UB?`o}LpPj>>lCK%j7V=g&he7Jot5H}^vwbB-NR4sT@F0}K z7j!ROi=DHwcs;CWBYJD$5j}@(vajuD5>4eJ=^WlrYbe)M>3_p-5x6Ep3Y_+%JC$X&#=?eKUjM zq=#qKI@OA8^i~lo>M8nnv87Qhp=5cOi`3~Zw{3d)HTaGvO^dxc=4@xX#P;fK3E$~1 zPDc&g)rat*@i2z91^gUK;2-TBtVaWB9(}QkIH4Q(J@ziWB53ej+`v7nUzHe1wn-vg z#)$odKu%Xp{$W^?WN}eu9TD;rA!QQ6&Ag9kqZePlVkqiY0X&ag_E++W9=QyoegIOyoO z!KUT-)SjlT*-o`GQH8BLcCR(xS*Vc+^EZb}DN~9FL%$_vtc|TL$CGoENElCMkWYQg z|1PFZ((4DfDO}1JxZTsQ@(?DQt}IL163V*nW5ZG8<;R6RoJbpTnP|dQE#12{oTy0c ze0m1I_V5&=%-hTKc?v7*ZGtW+UC_5$7xZPK3tGr@LHGPF=vbK@rlWL6Kc@2qdhHc4 z@R>qI6`$_zX4EU4ag|Ao4K+Y#Nu%UhYn`P*Vl+lG7%8}PiLhJdXgI_od#@%)uNEsR zf1MsO@u28qqPUZuc~O*3mMSVg8@mUD9*^HE1vGd;R7YK&WDMhukL8jg&kpGg*WJ7W zgCxO~4cC>IhIIT?aM9x#@*vSM?hdH@nB3_zaoF?my}Og{YBK-fRn!P8={tljyEWeT ds+5dzS?luV9gcH-m0f(TZY$W_kijRO{~vW}LsS3& diff --git a/src/aodv/test/aodv-chain-regression-test-2-0.pcap b/src/aodv/test/aodv-chain-regression-test-2-0.pcap index daf3dc307678ba1c2500824adbe3d1593199019e..673bfc071450ccb0cdef828233d70fd5b3fd3862 100644 GIT binary patch delta 909 zcmY+CTSydP6vw~$#`T+ZXL489X-7xhLPIG7l$7YILJ-Mi*@!zJYW8=luTXaBk#X-PWel zMm>~NOMAD6lC;pxVp_c~G+m2qM*=1V=5&(oZjlfok==x35dlMvZ2S4+g!p*ShXF~$ zN5O?7%!zhEq2vUvNjiPjj3UV^WT9S4i80Hq?_G1a>;cn|Lo;bh3o<3$UfoKFpG*AM z$<`xPcH${br^i~+#B^GCf%oFh7*fPcTGR%=SV9lBVK`E!Y6#`J7azoYIvz4x(TAO; z8Wj<_^zAV%|THrh{dL0Ua_5-wM!R%$XEfUhm9XFy% z*RUa~mi}C{+P?XL`%z~vDiNrZeZm=p)_Bk(2cgT#yZswHOVaDLP9~uH7+z zf3?H^@qcRy3RM}wxKw7|Xwxo>Px+A>s!z=GuNe3oZ?Fh1Y1AzViV_UQ=Uuj3!OR01 k*}Rl<>jvX)!sB2DX{JV`(Z>cx|S7ZC|L_zvmd9S{jnyRV#teNyqLwC<~b${>G`@VWz z-F@w+Z!WfFPKL|&w#Xa)&u=Y}7xA0x!a!u(Ev~UW++MoWVXHhN@;HyRZWCE-wc1#> z+vnQnWEsaE5=4>~j_u+(*t`Gy&1K8RVQ>*_4V=yx4tbe4D~MzCM+Lyvz?mDvAuki> zAH?b51g;B%qu63`J@-P-Ee&zzrL`dQbE0|@MVaivFTDbn?wc366??AN2H0>3tq<;w z(UL6rUM-KKQGF4Ira1+gDviU(lX#xJM$&US27Bg0&lvRs@iq}JV;|5K_lWdy7T2Ja zkAg#B*&VWHjdfW`zQ%~saW!^WDBxH=9{IstkIf-qWDK-NXnhZ@J?y!TRk`o4p`Yt- z&`&dn7#}Rg@w|Q-NzZ8;`f<$Y86zbT?_28nWm3W$NT9@TWf1e}M;fU^x#S zna0Wh(f>ee4|}d-HR?4nG+9ir3oLc)`1;CO`uf^YmiOORU>WM` zU$kaUqY5e4cFxjgd`DRxKN;VFk~;T1260Zif}`2282RAIbZ}-^_q(qSv;FhIR&dxwiRRBqZmFa8sojHP41)<^LxW2sqCuAQ7^!F?OEd;n+}OUHnrx9}@t znfPJOvfzh}S)Kr9#?tX%=%?`{ld)74eO-THWjr3kjaj}>dZKa+82Vy~rBEDL_vnC0rrH9uU6bK2#XjcNRl z1TP;jy~@{(i7}BM665c;ObpeiV`5C?ha~#nS`A}4)e4p9wVDWn4`TaI*D$&%2C8ft z3{Voj74BotHM|v0Mo2HkK&?g?;j09M<-2H?L+ssiBtmlHD|2`&8ZgctD$v@5L~jWbM@& p#;Fto-vFn0T^*0|soq7hkkMvDt>VwtSTGFg>_q zfL`?D5|2@G00X8F4X5y)x6#l%s!TDeT`)Gy8H{Vy-VFYjR2DZ>4w?Nln=uGGSCGz8 zFlLw0XHL+;m91O5S9C3Q77esJ$E-J{uiLAdoq~Q@#w|-3Vby3M`V})46_r*u{#sh7 z;+w(tu4!x)_v8faS~GH)H7t8n){Vo~cKW<-q+Wg>^r`q{O;EZ3ale8Oij0dkfh+c? zmaKOMCZ_E-2v6+_Dtr#Sc0_n`zl27A3649RSg<)zXD{Uks*FLP+*M5{Xp1!G6pYYe zFTxMk9t^phyje1%%>9U&2jzl^MfWsglX#Zf&KFe!%4Tri72)h?7B`Yt%^$AoCjrAu z4B-pIt={62;ruN(V(Ej%}B@JV8@ zdaL;JrtAd{e>HhrTfUEdLN;mKjx!tW1cXJew?*dsLe>Y8CA1pfJ-_}d4h4j)Kb*}L zE+|FX!wlQ5Ihbau*&?Ei{8(WTZYp7Z#L3Xe{g_ltG^K2K)W}*xQu0*RAulK_dcAEx rJIGE6Kp5u+Xoy6l5b5@;7H=t1x?Dmt^{ObyJ1@BjUO|8M4;`BlHVb0|dz z>F}l=I?1nW_)d#f5CtJC@Dt@ehSMaY^-GR26=o!W7o?U}dT_YJKw6V%!Gi$pB&#?P zU^;IUW@N{|Ex||{x8yA$4z-V2#VL+)JQXwam4d;rfxIlyODb|=8XXeDRk4ch)|?^Q z56x+N9%NYOZF63n_ZfVYAQVcFl{z(l*zvqCWq2uN=zPTT6hrNeIzAE8+45(?6$C%npwKCWJxeTMxG9Rsuxwg0bfE1RC_D&y_8KK^Io9jE?T_?W=dM< zpJy(y-e)R=6KiZDmh?u^usN9X>G&4hfwR7BU{RQuuohGmngpRukVoVwR(wN5p3eI} z5iAFF90?wx_n*4tdm&Syyko&AW`!AQ6xWXz6Y^(<_E;6qn8ke5PgD!H7H+_`@IIm< z?~hKeh2Ih?5G+Ky=$R)jwKQ&GH6)2!H>l&WMlo+w0|D}1#yY`+0X-x0jV#nWcKes& zreaCAV^*qm*~6cWf8|lbR4l1EVu!9bOx@aVy?ht6@p~Ki|1iSJaFJEeI-|H;i%g<7 zA8kx%QY`zPklo(JoqTm3$f0f7ACK- zv508`0Yx|q4HlQuMvR4sglQhe>Wvv!WTfq`H#LQ!D+_Xa) zL&+*ao%M@nKeY$zaE2$TB{tR7zHV3Z=Xydq4HaG$`8{1rhG_5s*4fiTu)n|HkrmN9 zu*GjPZ$Fvb!hy-yK71Duw2WDH?e~#-^#FV`f}-WYMe_!~-b>+yUxv4)gx8J%pWQl# z61;RzrZtWcWqj1>YzfBvex66XA^K7-4wLu^+eUA8Tt)9@Ws3DO77#ngZ(dORo1C-~ YjM0O+Nn7CU$4x~&%*zz(^#pnOAAG2!UH||9 delta 611 zcmX|;KWG#|6vk)X%+2h2x3{;O$nCDXaTQ}g6i&;44;7Rs7y=Ol4RVd5g&-C|P$X5b zGsi1a2+=}P}S{yT;6+Pa>uPzW|=1+>4aCW5+d}fShjdfNnwt zJDS=m@~m^f-7EW|<3@|Et_pMOu#1ef7^eZ8fgcCyALRU;nRp6bH*IOrbTTTMrXrwa zk-=OSa@D)*u5cK8 zZ+hO+V2De*#K|hsusX|~-qD&Ne!nZGUa6zD@9##%RQlHi*S;f&4Ovm93yeo&~5JqlasSy%A!?$~pQ|PdYC&&4j4T53{W|h5uv(wUz6& IvOF5W|I;mxY5)KL diff --git a/src/aodv/test/aodv-regression.cc b/src/aodv/test/aodv-regression.cc index 149e8b6c4..f68f13725 100644 --- a/src/aodv/test/aodv-regression.cc +++ b/src/aodv/test/aodv-regression.cc @@ -161,10 +161,10 @@ ChainRegressionTest::CreateDevices () internetStack.Install (*m_nodes); streamsUsed += internetStack.AssignStreams (*m_nodes, streamsUsed); // InternetStack uses m_size more streams - NS_TEST_ASSERT_MSG_EQ (streamsUsed, (devices.GetN () * 6) + m_size, "Stream assignment mismatch"); + NS_TEST_ASSERT_MSG_EQ (streamsUsed, (devices.GetN () * 8) + m_size, "Stream assignment mismatch"); streamsUsed += aodv.AssignStreams (*m_nodes, streamsUsed); // AODV uses m_size more streams - NS_TEST_ASSERT_MSG_EQ (streamsUsed, ((devices.GetN () * 6) + (2*m_size)), "Stream assignment mismatch"); + NS_TEST_ASSERT_MSG_EQ (streamsUsed, ((devices.GetN () * 8) + (2*m_size)), "Stream assignment mismatch"); Ipv4AddressHelper address; address.SetBase ("10.1.1.0", "255.255.255.0"); diff --git a/src/aodv/test/bug-606-test-0-0.pcap b/src/aodv/test/bug-606-test-0-0.pcap index 881801b993fb8d8b5c4c14765356f25200efda42..6f4d627a420ce35715b91dec3c062232fc41c5d0 100644 GIT binary patch delta 644 zcmYk4O=uHQ6ou#AOlKzPOeSeko3x=bk`&v3(}cDQT~rgPww4S<)JCzOg0m@zE)-gm z(1jL?2$>u=g3zu6OBW*evnVcHiL~NUT!^^T5Q_`3qTtNas=N0%_ug~v_ufYK`anHJ zuVuH_p*O1An{<~;G&JD0Y&x06l$fHI6AjTsg;~^`z#6mZ&QbheDVm!^H=U=YNz^Ds z`RRt3gb|amP8JQ7(IlG=mAUq*j9l2ne88dir+Dx9WwfFu-nJF#_*_G@DLv1eq88<@aPf4sL0c!hR?NaeT%`WA-y1p0R#$yrMHmx=oDkp915XaBu3D delta 739 zcmY*XJ!n%=6n^)-|Gd1s{IzLnn!FSoRD7mTuy!a-#R`J4)kUN#6#7uQs5pcoSg?rL zB`=>~mtv+4QBfSCLx&CpMO+1Su&YC;KZ6wfsrSaTq<6XJe&?L;obTf<9C&xIlA(uE zkoD;!3$p3p(P=s(2b(2!1K;%|F6*i$@w2F+7IJZmdGu7p6IP-N8nU6DR&rQJFHO@a zy{i2OmULd7#xqODDtVMQ(WDX$m^=B~CbF7~IoYS1pJ5tjfmyq zhvHKsB2ZiG^TCm%GQZ2nQyNREPhXrJ_Mz8RWm-N@3^60e<}qLtk&wu% z+4A8YN3NLMYnN5vux@+}r>INVl`)T69TG5Z`*hN3FF?vV7r|w{w2D;z)so<1!x0|z zqiL^T$VuaIWY#>s$A?iIb7t5%zF}IE`F5E#;l)^Vr1dIn38Lr(tJg)+kWNTaK~gbl zcuc`^d_PvA9-UnkJwKyWT7M;?daO#-R&*&|rBD2uxrismG@VlnH$=r;!eKEKlsufI xtr;9&dm-@898a|I82JK=T-!4o6UiP-WYPr#JOmiAoR4HG;7N(iNKax;=>Ip%OE0an?95k zq;36s=pj-gD5M8L>!F7bf}pVQp_iWQArLAgBFu-tzMa;d&iT%FzTf%(|L0o!=RG+; z4XXKiiw?T-^+tX=L9>DUdXioT5SEg3z8O7sKN&$hlZL1{2#x%diXlWv>W?GK%h@xWZg*(G^CoTGo8O%6M{Bc;cEi3K>CI$Uu zg@Q*)7*Ew@oL1d=6w}V_xL9uBlQTiXG7stKsF0~u<3UrJ!5K9|C5;N+ zRdmwc#UeC{L9a~r8`!9cyRHzuY+$pdG>=t#vx96l+o_!eqS(G@WVsXcrV(L}pGH~) ze+ezF2yN^a#y8v{+KdY0`zqT>?ZUX`r;lB1+Qed|MQ;z3Xt^Uo!8~2OVaHOzglox<=IUSGD2ZnR)m@M zSkyFD!f5%TcLh7VVFap|@zv`_!sl9W*KnZSBG6ye22#ERb^Hr-$yW-r1K(JzZv9t} zcx@+b-V^1jFY1svG|qmi_5^zBWSVK>jtOsF*x}$#vAo2k!lhnQ=xXEA+?<_D)fVMp bn~HV4tr#$ZdKfE)OgDE4(3D<|HNE{WJ%!c1 delta 857 zcmY*XL1+^}6y5o|ncdB9(j-ljjl^~lL<=^k5D>+*5d*E@QZHUwqVy0!M0zNNUQEFf z5Va=$lb5!j2Q3~fl_DZF2f)+WX;vRNp{(t|y`EP#x#8kSR zgd?odS%3lhCn~cS;RaN899Rd;FbD3+I4CC}t>AMu0yzakkc0z1Oo0OjIo_hBhvP>I zE^yp}5g1oRfu`Y2*?|QOmuboCB6!M=$CMKE`$fT5Ke5<&*_VP1gP0OH>r2CTLr6R_ zv7y-*UNKbsp`4Rf z8N&y$E;fm>k;Q(khQt2EVz(Yfj)S%Mj${w)qfv<1S0 zUx5_t$ijo(U>bI1>dynLD8h%A!2-PXwTLcpoN04ln&S>FXI#rIbQL-@GN}ZIwHCoA zO(+}+r{J?r3N|a_EOZO?O}%xIq93c_5{wxws``>>yBNs{?7eqQKgp?~wk$OMh{kQa z-I2vwq=swJ#NxAdGL&Ya?Vh1S(JT}_Lqkyo${zEcs^W!MhRfu`ld51}?-+om zziFH23PrE~bR{qn&u||d*BatD9?#%lTmhOUnje@Xf8i*1AN~9`c3OF^(sn;N=Ox|9 z>20@~9_q1mmTUhYRS)7uI={J)&?=jscQ2($IY~M$8R%Fin`(6rty6kxQ=l9FqfK0n GrTzlaWa6~| diff --git a/src/aodv/test/bug-606-test-2-0.pcap b/src/aodv/test/bug-606-test-2-0.pcap index 4be2d5bdab755ca81a8dcd86203a66c00128d98a..c12506513ff2c57c77d41f1c8fd9865d58c10415 100644 GIT binary patch delta 606 zcmYk3PiPZC7{zzLY-Y2`PO=ROS%|WrElm%rQgV~9Zmp$Siie;rO^b-E;7L6cW7^&f zJt$=JJXG;dkD`KsfaIXio23WAQ$0xaAR;|_DD~#d<`2$ghn@G{_kJ@^N8S%N^7PdV zj|X&m6qijqd|9ON0?wwK@W7>s0zM~mToEfQC`ws;%ebT2xS{%VWejii9JW-AcBX~b z!7tUNCl_&z<(e_gs9x$jzUVf}3HJQ&YJbMU2E;W4YRw$x+KO zmrmRtjJjIG8guY77SPR_Y{x{P@~MVfTAeBB~D_@*vWn~0id?9m~yaS zaQZWhO*2o2r+RjE3%epNn2eZS8LqKD*>_5&L&K%wg{Z5S)acPv#1te0dOjtX@^o~e z`xrXRluNmac#v5dtwd*G1+PkZjH;3Xu|=dr_i zdp<45wJ!Ngx=a2s^FR4UhGUl(>GtEMwZt?*z5Pz6{I-1Zp2^+JkT32PjiKwk>p7D3 RX>LOv-OEm>k>*>r^bacat%Lvo delta 614 zcmX|7&ubGw7@c|hYc{)^O^QNRW4k?A3c}*SAQTB{NRjgI&G+8C_lC!xPPEJTAUmTe_9e~v zQD?1!^9G&q;?B1O*9@A=mjc0O!w{mycZ+VD5#5w^ESc1kWjwK%7t87tpY6R5sbH<({;O^wrk7Tge-~mNl4PMoAEiT6c0fl}g??ByT5+Py z3wBXr%w$$9*Xfb7h}{>OyQHeNWbV&j-9n_9azL~0G+1gCvD~5sFQ)G*z&1EX8CSR< z4&QSV_Z}BiW9mVOJvYG#lO}UzJg~A5X)XnER~!Po_DR>qbvxvH34YsLc>|&I|9!#9 zLT-C0nkv&d>oTK(!@9vTPJ7xs?f5C?huV4?RB510Ebkv!SM)XT>1|k{UQnY`VYDgp z9C{`TO|Qd%ro&56%)M%}b#Zb}^TrGn%6?x1O3X4UEE-jbWioJ)nrfUL7V2mZ^pCqd ez1z^!xndp9`_wMpz)nvChel@PGd(PiRQ~{gQJsna diff --git a/src/aodv/test/udp-chain-test-0-0.pcap b/src/aodv/test/udp-chain-test-0-0.pcap index 92c778557aea200e05fb64c0fd4472edceab75c9..5f427df0022b7279398551dd637daec27f737399 100644 GIT binary patch delta 444 zcmW+yJ4gdT5Z&9^GbTigphR<;jfG&uL`h>6i-1^|i*RWoCN`plm4f&~NoQeUatyH) zQ7bhmJkUxJ(}iF@y<%x4c2<7oZkzXZX6L$0@cP;@NT;uyU_+o_63sE?| z0gQtVb7jC*OoMm@@ES7S8QaPB(5cWZG~RVbGXv(I3zH%WzI(s}p+ks}y0A^yib%_& zz6n@*|8b*L?KmmoFP`D)~K{jJeyN6UuE_XjwifA)S25lOAM)s`!-w?Slkj& zSl|@T_r$KQfHvu5wA3W?n5kjRC3>K^#OYgBupJ31O{=B93K;JN+?dtiH{jSP%*v&y z>|a!|Vf54T{GH*K(T8E(4}q*o86@{9c*Z3@2)B!q%@~!th2P;v#O+ww48_`BRvmH3 c+iDWCX*YfwBhaS1Olwd+q{ozPFK0yl0k>9$WdHyG delta 453 zcmYLFO-lk%6rK0(v%z7KEJ{mpwg!!ri%O^nH(`w!Log8-1b$RIDWw`?{k^Z*$JM_q}uPdG#u zXz3nCbY`pFN`ZgUd{W`Y^2rX5Z99)OG(-eyI~+HOpAo+x-o5ip{6*Jn z#nlkdEOcD!yZ=+eN(4^#I@^?r)DLTRP1&F3o@^&8j>T0WO-OEBH=>ZbmmEJ_GE^bz zl5!h)5LiACs4S+KVlSAF0#-*Eo)}r|w?gb0CoLV~9&ol}5+0EJk=QBw&oAEGDzRe`hXfXLVlOwYmkQXQ^&CDzX z(k9R7F!?;AF7qWIFOfx>xlfvTax8NMk1NbDMib`A2bq1Dx0pc`)MT=N75WvhOb!&0 z-@J$A9t(3Eh$AVzc?YMC6w{7UutQZQGIDNi5IMy%S-^m0a+;? p*1I5%r1<0q$}G&Pifmv*zN@o=6%-i&6|idnIS>V#^Gx4}0000~U;+RD delta 368 zcmeC0!gy;6;{+Kd4*Q96Nz6N%7$?e0O!n7gpSZ}0>6G9PMWAeM2-DwTWMXgt3W6|4$K*52 zPRyB65R-D&L1??JOp_T! N;vfZ^