<div dir="ltr"><div dir="ltr">Hi Junxiao,<div><br></div><div>I understand it now. </div><div><br></div><div>Thank you</div><br><br><br></div><br><img width="0" height="0" class="mailtrack-img" alt="" style="display:flex" src="https://mailtrack.io/trace/mail/8bccba7b891d6c74fa51a1d7bf39bd6ddad702e0.png?u=5632877"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Apr 23, 2021 at 7:06 PM Junxiao Shi <<a href="mailto:shijunxiao@email.arizona.edu">shijunxiao@email.arizona.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div>Hi Sonia</div><div dir="auto"><br></div><div dir="auto">The condition is testing whether there are more than one <b>PIT entry</b>, not downstream face.</div><div dir="auto">Strategy::afterReceiveData can be overridden in subclass, so it's not an exact duplicate.</div><div dir="auto">See <a href="https://redmine.named-data.net/issues/4290" target="_blank">https://redmine.named-data.net/issues/4290</a> for reasoning.</div><div dir="auto"><br></div><div dir="auto">Yours, Junxiao<br><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Fri, Apr 23, 2021, 03:43 Sonia via ndnSIM <<a href="mailto:ndnsim@lists.cs.ucla.edu" target="_blank">ndnsim@lists.cs.ucla.edu</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>Please guide me if I am missing something. </div><div><br></div><div>In onIncomingData pipeline when there is at least one PIT entry match (  <span style="font-family:"Droid Sans Mono",monospace,monospace,"Droid Sans Fallback";font-size:14px;white-space:pre-wrap;color:rgb(0,0,255)">if</span><span style="color:rgb(0,0,0);font-family:"Droid Sans Mono",monospace,monospace,"Droid Sans Fallback";font-size:14px;white-space:pre-wrap"> (pitMatches.size() == </span><span style="font-family:"Droid Sans Mono",monospace,monospace,"Droid Sans Fallback";font-size:14px;white-space:pre-wrap;color:rgb(9,134,88)">1</span><span style="color:rgb(0,0,0);font-family:"Droid Sans Mono",monospace,monospace,"Droid Sans Fallback";font-size:14px;white-space:pre-wrap">) {</span> ....... )  it calls Strategy.afterReceiveData() method and this method sends data to all pending down streams via its <span style="font-family:"Droid Sans Mono",monospace,monospace,"Droid Sans Fallback";font-size:14px;white-space:pre-wrap;color:rgb(0,0,255)">this</span><span style="color:rgb(0,0,0);font-family:"Droid Sans Mono",monospace,monospace,"Droid Sans Fallback";font-size:14px;white-space:pre-wrap">->sendDataToAll(pitEntry, inFace, data); method.</span></div><div><br></div><div>My question is then why the else statement (for multiple downstream faces) is there in Forwarder::onIncomingData pipeline. Isn't this code redundant as the 

Strategy.afterReceiveData() method already have implemented the same logic? </div><div><br></div><div>My second concern is that I have run many scenarios (both p2p and adhoc) and multiple strategies (including multicast and broadcast), but I always get only one downstream face never got more than 1 pending downstream face. I checked it in Forwarder log.  </div><div><br></div><div>Any quidance will be highly appreciated.</div><div><br></div><div>Thanks</div><div><br><br></div><img width="0" height="0" alt="" style="display: flex;" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"></div>
</blockquote></div></div></div>
</blockquote></div></div>