<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Feb 11, 2013, at 9:48 AM, Yaogong Wang <<a href="mailto:ywang15@ncsu.edu">ywang15@ncsu.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Adding my two cents:</div><div><br></div>If you are looking for the specific code where NACKs are generated, it is in Nacks::DidReceiveDuplicateInterest() and Nacks::DidExhaustForwardingOptions() under model/fw/nacks.cc. The former generates NACK_LOOP and the latter generates NACK_GIVEUP_PIT. It appears to me that, in the current implementation, congestion also generates NACK_GIVEUP_PIT rather than NACK_CONGESTION.</blockquote><div><br></div><div>Thanks Yaogong, I totally forgot to mention that.  Yes, currently there are only 2 codes that actually set by Nacks strategy.  The paper explains more NACK codes, but we haven't yet fully implemented those.</div><div><br></div><div>---</div><div>Alex</div><div><br></div><br><blockquote type="cite"><div>Thanks,</div><div>Yaogong</div><br><div class="gmail_quote">On Mon, Feb 11, 2013 at 12:41 PM, Natalya Rozhnova <span dir="ltr"><<a href="mailto:natalya.rozhnova@lip6.fr" target="_blank">natalya.rozhnova@lip6.fr</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; "><div>Thanks, Alex!</div><div> </div><div> Best,</div><div>Natalya</div><div> </div><div>12.02.2013, 00:22, "Alex Afanasyev" <<a href="mailto:alexander.afanasyev@ucla.edu" target="_blank">alexander.afanasyev@ucla.edu</a>>:</div>
<div class="HOEnZb"><div class="h5"><blockquote>Hi Natalya,<div> </div><div>There is some description about NACKs in our paper <a href="http://dx.doi.org/10.1016/j.comcom.2013.01.005" target="_blank">http://dx.doi.org/10.1016/j.comcom.2013.01.005</a></div>
<div> </div><div>For the implementation, only routers generate NACKs, and this code is part of specialized forwarding strategy extension "ns3::ndn::fw::Nacks" (model/fw/nacks.h and model/fw/nacks.cc).   </div><div>
 </div><div>Currently, all existing forwarding strategies have this extension, but NACKs generation is disabled by default.  At the same time, just enabling NACKs for strategy like BestRoute or Flooding could only trigger NACKs with code NACK_LOOP and NACK_GIVEUP_PIT (in some cases).  For congestion related behavior described in the paper, you would want to use specialized strategy that enforces some kind of Interest limits (e.g., ns3::ndn::fw::BestRoute::PerOutFaceLimits).</div>
<div> </div><div>You can check out and play with the congestion scenario that was used for the paper here: <a href="https://github.com/cawka/ndnSIM-comcom-stateful-fw" target="_blank">https://github.com/cawka/ndnSIM-comcom-stateful-fw</a></div>
<div> </div><div>Sincerely,</div><div>Alex</div><div> </div><div><div>On Feb 11, 2013, at 9:09 AM, Natalya Rozhnova <<a href="mailto:natalya.rozhnova@lip6.fr" target="_blank">natalya.rozhnova@lip6.fr</a>> wrote:</div>
<br><blockquote><div>Hi all,</div><div> </div><div>I have a question about NACK implementation in NDNSim. I'm just wondering how it is working in existing ndnSIM code. Who generates and sends NACK packets: producer or routers?</div>
<div>Also, could you please refer me to the function generating and sending NACK?</div><div> </div><div>Thanks a lot,</div><div>Natalya</div></blockquote></div></blockquote></div></div></blockquote></div>-- <br>============================<br>Yaogong Wang, PhD Candidate<br>Department of Computer Science<br>North Carolina State University<br><a href="http://www4.ncsu.edu/~ywang15/" target="_blank">http://www4.ncsu.edu/~ywang15/</a><br></blockquote></div><br></body></html>