<div dir="ltr"><div dir="ltr" style="font-size:12.8px"><div>Hi Junxiao,</div><div>Thanks for helping!</div><div>However, I'm not sure how it is in violation of guideline.</div><div><br></div><div>Let me try to cite a scenario:</div><div>If the forwarding strategy finds queue on a particular outgoing data face is congested and it wants to defer the forwarding to a later time (say next data packet arrival for same face or a timer which ever occurs first).</div><div>Also note here that data is any way stored in content store so all the strategy wants is an opportune time to re-play this data fetching it from content store (before PIT expiry or fulfillment by any other node).</div><div><br></div><div>So, in this scenario strategy is not introducing a new type of packet nor is it wanting to disable content store, it just wishes to use the forwarder's interface and utilities (CS handle) at a later time.</div><div>Modifying the forwarder or forwarding pipeline for this case may either pollute the space for all strategy not wanting to achieve this and/or unnecessarily bloat up the common functionality (could also be possibly hackish depending how much change we are willing to do).</div><div><br></div><div>Also, I'm still puzzled that in my implementation why accessing content store via forwarder's reference (with my strategy being friend) is not compiling when a similar mechanism in forwarder doesn't give any complaints and it would be great if you could give your valuable input in this regard.</div><div><br></div><div>Thanks,</div><div>Rakesh</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 12, 2017 at 4:49 PM, Junxiao Shi <span dir="ltr"><<a href="mailto:shijunxiao@email.arizona.edu" target="_blank">shijunxiao@email.arizona.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Hi Rakesh</div><div><br></div><div>Strategy is not the right place to implement this feature.</div><span>As indicated in NFD devguide “Should I Develop a New Strategy” section:<br></span><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><span>The only purpose of the strategy is to decides how to forward Interests and cannot override any processing steps in the forwarding pipelines. If it is desired to support a new packet type (other than Interest and Data), a new field in Interest or Data packets, or override some actions in the pipelines (e.g., disable ContentStore lookup), it can be only accomplished by modification of the forwarding pipelines. </span></blockquote><span><div>Strategy has no access to the Content Store, and strategy cannot inject or intercept any Data packet.</div></span><span><br>You should implement this feature by modifying forwarding pipelines instead.<br><br></span>Yours, Junxiao<span><br></span><span><br></span>PS: I’m on this list. No need to summon me by CCing. I initially ignored this question because it’s already explained in NFD devguide.<br><br><br><div><blockquote type="cite"><span class=""><div>On Jul 9, 2017, at 10:30 AM, Rakesh Ranjan Jha <<a href="mailto:rakeshranjan.jha@gmail.com" target="_blank">rakeshranjan.jha@gmail.com</a>> wrote:</div></span><div><div dir="ltr"><span class=""><div><br></div><div>I'm trying to spontaneously inject a cached data (based on a previously unfulfilled interest present in PIT and so I have an interest handle to fetch data) from content store.</div><div><br></div></span><span class=""><div>1) Derived strategy doesn't seem to have any handle to fowarder although base strategy has a handle and is friend to forwarder to access pipelines. </div><div>In order to workaround this I added my strategy also as a friend and gave it a reference to forwarder, similar to base strategy. Is there a better way to access pipeline from strategy?</div><div><br></div><div>2) To access data from CS and feed it to outgoing data pipeline, I follow similar mechanism as done on receiving valid interest from forwarder:</div><div><br></div></span></div></div></blockquote></div><br><div><br></div></div></blockquote></div><br></div>