<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I don't know if NDN's implementation kept it, but in the original CCNx code the faces that ccnd manages are identified as being broadcast/multicast or point-to-point because you have to handle them differently... as you seem to be discovering.   A broadcast face has a small random delay before it sends data in response to an interest it receives, and it notices if another node has already transmitted the response and therefore should cancel its own transmission.<div class=""><br class=""></div><div class="">-- Nick</div><div class=""><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jul 17, 2017, at 3:22 PM, Adhy Satya <<a href="mailto:adhysatya820@gmail.com" class="">adhysatya820@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">HI Klaus,<div class=""><br class=""></div><div class="">Thank you for your reply.</div><div class="">Please find my comments below.</div><div class=""><br class=""></div><div class="">Thank you,</div><div class="">Adhy</div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, Jul 17, 2017 at 5:14 PM, Klaus Schneider <span dir="ltr" class=""><<a href="mailto:klaus@cs.arizona.edu" target="_blank" class="">klaus@cs.arizona.edu</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br class="">
<br class="">
On 07/17/2017 09:59 AM, Adhy Satya wrote:<br class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Klaus,<br class="">
<br class="">
I'm working on a wireless scenario (my apologies! I forgot to clarify this in my first email).<br class="">
- Point 1 (Send the Data to a different interface): nodes will broadcast packets on the same interface (WiFi);<br class="">
</blockquote>
<br class=""></span>
Maybe you can use a broadcast/multicast face instead?</blockquote><div class=""><br class=""></div><div class="">What do you mean by broadcast/multicast face? I'm using UDP tunnels as transport method and my strategy is based on the multicast-strategy.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br class="">
<br class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
- Point 2 (Delay the Data packet): since wireless is broadcast in nature, all nodes in the communication range will listen to Interest/Data transmissions and will rebroadcast roughly at the same time. Delayed retransmissions help to avoid collisions in the wireless channel. <br class="">
</blockquote>
<br class=""></span>
This sounds like it may be better implemented at a lower layer, since the desired behavior is specific to a certain (wireless) link.<br class="">
<br class="">
Did you have a look at the NDNLP protocol? <a href="https://redmine.named-data.net/projects/nfd/wiki/NDNLPv2" rel="noreferrer" target="_blank" class="">https://redmine.named-data.net<wbr class="">/projects/nfd/wiki/NDNLPv2</a><br class="">
<br class=""></blockquote><div class="">My goal is to reduce collisions in the wireless media by making sure neighboring nodes don't rebroadcast at the same time. I have an implementation on ndnSIM which I used the NS-3 packet tags to accomplish this. I want to implement the same functionality in NFD. I wrote a consumer/producer application that appends that information, originally in the packet tag, in the packet name. The intermediate nodes should be able to read the information (but not change it) and rebroadcast accordingly or even drop the packet.</div><div class=""><br class=""></div><div class="">Can NDNLP be used to exchange my rebroadcast data? If so, will I be able to delay Interest and Data packets at each router?</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""> </div><div class=""><br class=""></div><div class=""> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Best regards,<br class="">
Klaus<span class=""><br class="">
<br class="">
<br class="">
<br class="">
<br class="">
This technique was used in the NDN Car2Car<br class="">
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<<a href="https://github.com/cawka/ndnSIM-nom-rapid-car2car/blob/master/extensions/ndn-fw-v2v.cc" rel="noreferrer" target="_blank" class="">https://github.com/cawka/ndnS<wbr class="">IM-nom-rapid-car2car/blob/mast<wbr class="">er/extensions/ndn-fw-v2v.cc</a>> work (ndnSIM) and other works, but I think they all used simulators. In the Car2Car, the delay was performed in a customized face, not in the strategy.<div class=""><div class="h5"><br class="">
<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
On Fri, Jul 14, 2017 at 11:19 AM, Klaus Schneider <<a href="mailto:klaus@cs.arizona.edu" target="_blank" class="">klaus@cs.arizona.edu</a> <mailto:<a href="mailto:klaus@cs.arizona.edu" target="_blank" class="">klaus@cs.arizona.edu</a>>> wrote:<br class="">
<br class="">
<br class="">
<br class="">
    On 07/13/2017 08:47 PM, Adhy Satya wrote:<br class="">
<br class="">
        Hi Junxiao,<br class="">
<br class="">
        Thank you for your answer. I missed that detail on the NFD<br class="">
        developer guide (that the strategy controls only Interests packets).<br class="">
        In my case, each data packet is associated with a unique<br class="">
        Interest; therefore, by adopting an Interest digest the strategy<br class="">
        should be able to control Data packets.<br class="">
<br class="">
<br class="">
    You can use the function beforeSatisfyInterest() that is called<br class="">
    whenever a Data packet arrives. Thus you can perform certain actions<br class="">
    (like storing RTT measurements) on each Data packet. You just cannot:<br class="">
<br class="">
    1. Send the Data to a different interface. Or<br class="">
<br class="">
    2. Delay the Data packet.<br class="">
<br class="">
        Was this feature ever implemented? (it shows as 0% done in issue<br class="">
        3333 <<a href="https://redmine.named-data.net/issues/3333" rel="noreferrer" target="_blank" class="">https://redmine.named-data.ne<wbr class="">t/issues/3333</a><br class="">
        <<a href="https://redmine.named-data.net/issues/3333" rel="noreferrer" target="_blank" class="">https://redmine.named-data.ne<wbr class="">t/issues/3333</a>>>). Are there any<br class="">
        sample implementations?<br class="">
<br class="">
<br class="">
    One could design the strategy so that beforeSatisfyInterest() is a<br class="">
    mandatory step in the pipeline between "incoming Data" and "outgoing<br class="">
    Data". This would extend the functionality and probably support what<br class="">
    you want.<br class="">
<br class="">
    However, the strategy was not designed that way (presumably) because<br class="">
    nobody saw a use case.<br class="">
<br class="">
    For (1): why would anyone want to send the Data to a different face?<br class="">
    It would be dropped there as "unsolicited".<br class="">
<br class="">
    For (2): why do you want to delay the Data inside the strategy?<br class="">
    Maybe there's an easier solution for you like<br class="">
<br class="">
    - delaying Data/Interests at consumer or producer. Or<br class="">
    - delaying the Interests inside the strategy.<br class="">
<br class="">
<br class="">
    Best regards,<br class="">
    Klaus<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
        Thanks<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
        On Thu, Jul 13, 2017 at 4:45 PM, Junxiao Shi<br class="">
        <<a href="mailto:shijunxiao@email.arizona.edu" target="_blank" class="">shijunxiao@email.arizona.edu</a><br class="">
        <mailto:<a href="mailto:shijunxiao@email.arizona.edu" target="_blank" class="">shijunxiao@email.arizo<wbr class="">na.edu</a>><br class=""></div></div>
        <mailto:<a href="mailto:shijunxiao@email.arizona.edu" target="_blank" class="">shijunxiao@email.arizo<wbr class="">na.edu</a><span class=""><br class="">
        <mailto:<a href="mailto:shijunxiao@email.arizona.edu" target="_blank" class="">shijunxiao@email.arizo<wbr class="">na.edu</a>>>> wrote:<br class="">
<br class="">
             Hi Adhy<br class="">
<br class="">
             The method to delay Interest forwarding is explained in<br class="">
        this answer:<br class="">
        <a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/2017-July/003952.html" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/p<wbr class="">ipermail/ndnsim/2017-July/0039<wbr class="">52.html</a><br class="">
        <<a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/2017-July/003952.html" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/<wbr class="">pipermail/ndnsim/2017-July/003<wbr class="">952.html</a>><br class="">
                    <<a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/2017-July/003952.html" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/<wbr class="">pipermail/ndnsim/2017-July/003<wbr class="">952.html</a><br class="">
        <<a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/2017-July/003952.html" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/<wbr class="">pipermail/ndnsim/2017-July/003<wbr class="">952.html</a>>><br class="">
             Forwarding strategy does not have control over Data<br class="">
        forwarding nor<br class="">
             can it delay Data forwarding. The reason is explained in this<br class="">
             answer:<br class="">
        <a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/2017-July/003961.html" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/p<wbr class="">ipermail/ndnsim/2017-July/0039<wbr class="">61.html</a><br class="">
        <<a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/2017-July/003961.html" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/<wbr class="">pipermail/ndnsim/2017-July/003<wbr class="">961.html</a>><br class="">
                    <<a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/2017-July/003961.html" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/<wbr class="">pipermail/ndnsim/2017-July/003<wbr class="">961.html</a><br class="">
        <<a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/2017-July/003961.html" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/<wbr class="">pipermail/ndnsim/2017-July/003<wbr class="">961.html</a>>><br class="">
             Also, you need to ensure your Interest name (including any<br class="">
        “extra<br class="">
             name components”) is a prefix of the Data name. Otherwise,<br class="">
        Data does<br class="">
             not satisfy Interest and will not be received by the consumer.<br class="">
<br class="">
             Yours, Junxiao<br class="">
<br class="">
                 On Jul 13, 2017, at 11:43 AM, Adhy Satya<br class="">
            <<a href="mailto:adhysatya820@gmail.com" target="_blank" class="">adhysatya820@gmail.com</a> <mailto:<a href="mailto:adhysatya820@gmail.com" target="_blank" class="">adhysatya820@gmail.com</a><wbr class="">><br class=""></span>
                 <mailto:<a href="mailto:adhysatya820@gmail.com" target="_blank" class="">adhysatya820@gmail.<wbr class="">com</a><span class=""><br class="">
            <mailto:<a href="mailto:adhysatya820@gmail.com" target="_blank" class="">adhysatya820@gmail.com</a><wbr class="">>>> wrote:<br class="">
<br class="">
                 Hi,<br class="">
<br class="">
                 My consumer and producer applications send Interest and<br class="">
            Data<br class="">
                 packets with extra name components. I wrote a custom<br class="">
            forwarding<br class="">
                 strategy that reads this name components and forward<br class="">
            packets with<br class="">
                 certain delay.<br class="">
<br class="">
                 I'm using NFD 0.5.0 and ndn-cxx 0.5.0. I'm unsure where to<br class="">
                 implement the timer. It seems that if I implement a<br class="">
            timer to call<br class="">
                 "this->sendInterest()" it will block the forwarder for<br class="">
            a certain<br class="">
                 amount of time.<br class="">
<br class="">
                 Can you assist me on this issue please?<br class="">
<br class="">
                 Thank you<br class="">
                 _____________________________<wbr class="">__________________<br class="">
                 Ndn-interest mailing list<br class="">
            <a href="mailto:Ndn-interest@lists.cs.ucla.edu" target="_blank" class="">Ndn-interest@lists.cs.ucla.edu</a><br class="">
            <mailto:<a href="mailto:Ndn-interest@lists.cs.ucla.edu" target="_blank" class="">Ndn-interest@lists.cs.<wbr class="">ucla.edu</a>><br class=""></span>
            <mailto:<a href="mailto:Ndn-interest@lists.cs.ucla.edu" target="_blank" class="">Ndn-interest@lists.cs.<wbr class="">ucla.edu</a><span class=""><br class="">
            <mailto:<a href="mailto:Ndn-interest@lists.cs.ucla.edu" target="_blank" class="">Ndn-interest@lists.cs.<wbr class="">ucla.edu</a>>><br class="">
            <a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/m<wbr class="">ailman/listinfo/ndn-interest</a><br class="">
            <<a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/<wbr class="">mailman/listinfo/ndn-interest</a>><br class="">
                            <<a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/<wbr class="">mailman/listinfo/ndn-interest</a><br class="">
            <<a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/<wbr class="">mailman/listinfo/ndn-interest</a>><wbr class="">><br class="">
<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
        ______________________________<wbr class="">_________________<br class="">
        Ndn-interest mailing list<br class="">
        <a href="mailto:Ndn-interest@lists.cs.ucla.edu" target="_blank" class="">Ndn-interest@lists.cs.ucla.edu</a><br class="">
        <mailto:<a href="mailto:Ndn-interest@lists.cs.ucla.edu" target="_blank" class="">Ndn-interest@lists.cs.<wbr class="">ucla.edu</a>><br class="">
        <a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/m<wbr class="">ailman/listinfo/ndn-interest</a><br class="">
        <<a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest" rel="noreferrer" target="_blank" class="">http://www.lists.cs.ucla.edu/<wbr class="">mailman/listinfo/ndn-interest</a>><br class="">
<br class="">
<br class="">
</span></blockquote>
</blockquote></div><br class=""></div></div>
_______________________________________________<br class="">Ndn-interest mailing list<br class=""><a href="mailto:Ndn-interest@lists.cs.ucla.edu" class="">Ndn-interest@lists.cs.ucla.edu</a><br class="">http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest<br class=""></div></blockquote></div><br class=""></div></div></body></html>