<div>Hummm... please, let me ask a little question so... I want to make ForwardingStrategy to generate NACKs if transmission queue is full and there are no more available faces to reroute Interests. I add this condition in Nacks::DidExhaustForwardingOptions. Is it right that Consumer will also execute DidExhaustForwardingOptions to generate an NACK if its transmission queue is full?</div><div>š</div><div>Thanks,</div><div>Natalya</div><div>š</div><div>10.03.2013, 09:40, "Alex Afanasyev" <alexander.afanasyev@ucla.edu>:</div><blockquote type="cite"><div>Hi again,</div><div>š</div><div>The client? Do you mean one of the ndn::Consumer* applications? šThese classed don't themselves generate NACKs, they can trigger NACK generation if Interests cannot be forwarded anywhere. šNot sure what is the problem you are observing...</div><div>š</div><div>---</div><div>Alex</div><br /><div><div>On Mar 9, 2013, at 5:47 PM, Natalya Rozhnova <<a href="mailto:natalya.rozhnova@lip6.fr">natalya.rozhnova@lip6.fr</a>> wrote:</div><br /><blockquote type="cite"><div>Hi Alex,</div><div>š</div><div>Thanks! A little update: it seems like OK with faces (and so it was OK from the beginning), I found the error... it's really stupid, the Client generates NACKs himself when transmission queue is full...</div><div>Is it possible to fix it somehow?</div><div>š</div><div>Thanks!</div><div>Natalya</div><div>š</div><div>10.03.2013, 08:01, "Alex Afanasyev" <<a href="mailto:alexander.afanasyev@ucla.edu">alexander.afanasyev@ucla.edu</a>>:</div><blockquote type="cite"><div>Hi Natalya,</div><div>š</div><div>Correct me if I'm wrong, but I think you should try another face when the base code cannot forward the Interest. šThe base version or CanSendOutInterests returns false when the node is trying to send out on the face the node has received interest from (in this case you definitely want to try another, if available), or (if retransmission detection is enabled) the node already send out interest to this phase during the current "retransmission cycle". šIn the latter case, it is also desirable to try another face to explore alternatives.</div><div>š</div><div>Can you try to disable m_drop_cause logic and always try to send to the next face, if CanSendOutInterest returns false, and see what happens?</div><div>š</div><div>---</div><div>Alex</div><br /><div><div>On Mar 9, 2013, at 4:05 PM, Natalya Rozhnova <<a href="mailto:natalya.rozhnova@lip6.fr">natalya.rozhnova@lip6.fr</a>> wrote:</div><br /><blockquote type="cite"><div>Hi Alex,</div><div>š</div><div>In my code, I added a condition at the end of CanSendOutInterest. The m_drop_cause parameter is set to 1 if CanSendOutInterest passes through this condition and returns false (i.g. node can not send Interest to the given face because the transmission queue is full and in this case I want to change the face). m_drop_cause is set to 2 if CanSendOutInterest returns false because of any existing in base code condition (like, retransmissions etc), in this case I don't want to change the face and node should just behaves normally.</div><div>But I check this m_drop_cause parameter and it is equal to 1 but node doesn't try to find the next face (he enters to the condition if(m_drop_cause == 1) continue;šš but then just exits, it seems like there are no more available faces).</div><div>š</div><div>Oh, yes, I use i_metric.š The i_nth was just the last attempt to see if it can change anything.</div><div>š</div><div>Thanks,</div><div>Natalya</div><div>š</div><div>š</div><div>10.03.2013, 06:16, "Alex Afanasyev" <<a href="mailto:alexander.afanasyev@ucla.edu">alexander.afanasyev@ucla.edu</a>>:</div><blockquote type="cite"><div>Hi Natalya,</div><div>š</div><div>NACKs would be generated if DoPropagateInterest return false. šTrySendOutInterest method makes an attempt to send out interest over the face and in your code I see that attempt to try next face would be aborted if m_drop_cause is not equal to 1 (e.g., if it is 1, only one face should be tried in most of the cases). š Is this m_drop_cause a configuration parameter or something that is set for each attempt?š</div><div>š</div><div>Another side question. šAre you intentionally not using metric to rank faces (<span style="margin:0px;padding:0px;border:0px;color:#333333;font-family:Consolas,"Liberation Mono",Courier,monospace;font-size:11.8182px;line-height:14.5455px;background-color:#ffffff;">fib</span><span style="margin:0px;padding:0px;border:0px;font-weight:bold;color:#333333;font-family:Consolas,"Liberation Mono",Courier,monospace;font-size:11.8182px;line-height:14.5455px;background-color:#ffffff;">::</span><span style="margin:0px;padding:0px;border:0px;color:#333333;font-family:Consolas,"Liberation Mono",Courier,monospace;font-size:11.8182px;line-height:14.5455px;background-color:#ffffff;">i_nth</span>šinstead ofš<span style="margin:0px;padding:0px;border:0px;color:#333333;font-family:Consolas,"Liberation Mono",Courier,monospace;font-size:11.8182px;line-height:14.5455px;background-color:#ffffff;">fib</span><span style="margin:0px;padding:0px;border:0px;font-weight:bold;color:#333333;font-family:Consolas,"Liberation Mono",Courier,monospace;font-size:11.8182px;line-height:14.5455px;background-color:#ffffff;">::</span><span style="margin:0px;padding:0px;border:0px;color:#333333;font-family:Consolas,"Liberation Mono",Courier,monospace;font-size:11.8182px;line-height:14.5455px;background-color:#ffffff;">i_metric</span>)?</div><div>š</div><div>---</div><div>Alex</div><br /><div><div>On Mar 9, 2013, at 1:47 PM, Natalya Rozhnova <<a href="mailto:natalya.rozhnova@lip6.fr">natalya.rozhnova@lip6.fr</a>> wrote:</div><br /><blockquote type="cite"><div>Hi Alex,</div><div>š</div><div>I want to re-send an Interest to next available face if the current one is unavailable because of any special reason. I trace the second face and see that it receives rerouted Interests but sometimes I see that the node generates a NACK rather than resend the Interest to the next face (it even doesn't try to choose the next face and just exits from DoPropagateInterest function ). So, there is something wrong in my implementation or in manually generated FIB... Could you tell me please, do I use a correct way for changing faces?</div><div>I rewrite DoPropagateInterest function and choose the interface as follows:</div><div>š</div><div>BOOST_FOREACH (const fib::FaceMetric &metricFace, pitEntry->GetFibEntry ()->m_faces.get<fib::i_nth> ())<br />ššš š {<br />ššš ššš š if (!TrySendOutInterest (inFace, metricFace.m_face, header, origPacket, pitEntry))<br />ššš ššš š {<br />ššš ššš ššš š if(m_drop_cause == 1)<br />ššš ššš ššš šššš continue;ššš ššš ššš š</div><div>ššššššššššššš else break;<br />ššš ššš š }<br />ššššš propagatedCount++;<br />ššššš break;<br />šš }<br />ššš š return propagatedCount > 0;</div><div>š</div><div>Is it correct and the problem should not come from this piece?</div><div>š</div><div>Thanks,</div><div>Natalya</div>_______________________________________________<br />ndnSIM mailing list<br /><a href="mailto:ndnSIM@lists.cs.ucla.edu">ndnSIM@lists.cs.ucla.edu</a><br /><a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim">http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim</a></blockquote></div></blockquote>_______________________________________________<br />ndnSIM mailing list<br /><a href="mailto:ndnSIM@lists.cs.ucla.edu">ndnSIM@lists.cs.ucla.edu</a><br /><a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim">http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim</a></blockquote></div></blockquote>_______________________________________________<br />ndnSIM mailing list<br /><a href="mailto:ndnSIM@lists.cs.ucla.edu">ndnSIM@lists.cs.ucla.edu</a><br /><a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim">http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim</a></blockquote></div></blockquote>