<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="">
Isn’t the Ethernet face type in NFD what you are referring to as broadcast face?  It supports WiFi interface as well.  <br class="">
<div class="">
<div style="color: rgb(0, 0, 0); font-family: Helvetica;  font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; " class="">
<div style="color: rgb(0, 0, 0); font-family: Helvetica;  font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; " class="">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  ">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; " class="">
<div class=""><br class="Apple-interchange-newline">
Lan</div>
</div>
</span></div>
</div>
</div>
<br class="">
<div>
<blockquote type="cite" class="">
<div class="">On Jul 24, 2017, at 5:16 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 there!
<div class=""><br class="">
</div>
<div class="">Since there're a few topics in this email and I still have some questions, I would like to summarize:</div>
<div class=""><br class="">
</div>
<div class="">- My goal is to delay the forwarding of Interest and Data packets in wireless networks.</div>
<div class="">- The current NDN implementation has no broadcast face, which would be the place to implement those forwarding timers (according to Nick "<span style="color:rgb(80,0,80);font-size:12.8px" class="">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</span>")</div>
<div class="">- Another option would be making the "beforeSatisfyInterest" mandatory, and implement the NFD::Scheduler in both Interest and Data pipelines. However, since I'm working with wireless topology, I would still be using a unicast face (UDP tunnels
 in my case).</div>
<div class=""><br class="">
</div>
<div class="">It seems to me that writing a broadcast face would be the best solution and would also extend the capabilities of NDN to wireless scenarios. Did I get that right?</div>
<div class="">If so, could you point me to the CCNx implementation? I could only find
<a href="https://git.ustclug.org/lihebi/ndnsim/blob/90076ff370166ccd4a7f0329326d333e65496424/model/ccnx-broadcast-net-device-face.cc" class="">
this </a>for the NS-3 based implementation.</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">Thank you</div>
<div class=""><br class="">
</div>
</div>
<div class="gmail_extra"><br class="">
<div class="gmail_quote">On Tue, Jul 18, 2017 at 4:08 PM, Adhy Satya <span dir="ltr" class="">
<<a href="mailto:adhysatya820@gmail.com" target="_blank" class="">adhysatya820@gmail.com</a>></span> wrote:<br class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr" class="">Hi Junxiao,
<div class=""><br class="">
</div>
<div class="">Please find below my comments in blue.</div>
<div class=""><br class="">
</div>
<div class="">Thank you!</div>
<div class="">
<div class=""><br class="">
<div class="gmail_extra"><br class="">
<div class="gmail_quote"><span class="">On Tue, Jul 18, 2017 at 11:27 AM, Junxiao Shi
<span dir="ltr" class=""><<a href="mailto:shijunxiao@email.arizona.edu" target="_blank" class="">shijunxiao@email.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">
<div dir="ltr" class="">Hi Adhy<br class="">
<div class="">
<div class="gmail_extra"><br class="">
<div class="gmail_quote"><span class="">
<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" class="">
<div class="gmail_extra">
<div class="gmail_quote"><span class="m_5882939306428801899m_4852508090461084410gmail-">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<span class="">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
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>
</span>
<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>
</div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
</span>
<div class="">Wireless networks are broadcast in nature, so it's natural to use a broadcast or ad hoc wireless face.<br class="">
</div>
<div class="">UDP tunnels are akin to VPN tunnels and they can only handle point-to-point connectivity. It does not make sense to send a packet received on a point-to-point face out of the same face because the only recipient on that face has previously transmitted
 this packet.<br class="">
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
</span>
<div class=""><font color="#0000ff" class="">Could you guide me on how to use these faces? To my knowledge, the NFD developer's guide only mention about the broadcast strategy. The transport methods available are TCP, UDP, Ethernet, Websocket, and Unix stream.
 I also couldn't find anything on ~/NFD/daemon/face</font></div>
<div class=""><font color="#0000ff" class="">Do they need to be developed?</font></div>
<span class="">
<div class=""> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr" class="">
<div class="">
<div class="gmail_extra">
<div class="gmail_quote">
<div class=""></div>
<span class="">
<div class=""> <span class=""></span><br class="">
<span class=""></span></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" class="">
<div class="gmail_extra"><br class="">
<div class="gmail_quote"><span class="m_5882939306428801899m_4852508090461084410gmail-"></span>
<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>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
</span>
<div class="">For unicast communication on point-to-point faces such as UDP tunnels, the WLAN card driver can be configured to use RTS-CTS to avoid collisions.<br class="">
</div>
<div class="">However, this does not work with broadcast or ad hoc wireless faces.<br class="">
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
</span>
<div class=""><font color="#0000ff" class="">Correct. I'm developing my own collision avoidance technique.</font></div>
<span class="">
<div class=""> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr" class="">
<div class="">
<div class="gmail_extra">
<div class="gmail_quote">
<div class=""><br class="">
</div>
<span class="">
<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" class="">
<div class="gmail_extra">
<div class="gmail_quote">
<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>
</div>
</div>
</blockquote>
</span>
<div class=""><br class="">
Yes, you can define RTS-CTS as part of NDNLP. </div>
</div>
</div>
</div>
</div>
</blockquote>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr" class="">
<div class="">
<div class="gmail_extra">
<div class="gmail_quote">
<div class=""></div>
<br class="">
<div class="gmail_extra"><br class="">
<div class="gmail_quote"><span class="">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div 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>
</blockquote>
<div class=""><br class="">
</div>
</span>
<div class="">This design was rejected at Nov 2016 retreat. Broadcast communication should be used sparsely only to discover which node is the upstream. Afterwards, the downstream can unicast Interests to the specific upstream, and only that upstream would
 reply.<br class="">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
</span>
<div class=""><font color="#0000ff" class="">The scenario you described works well for wired networks. In the case of ad-hoc with mobility (VANETs or MANETs) nodes should be able to rebroadcast even if they are not the original downstream. So there's no broadcast
 face implemented in NDN?</font></div>
<div class=""> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr" class="">
<div class="">
<div class="gmail_extra">
<div class="gmail_quote">
<div class="gmail_extra">
<div class="gmail_quote">
<div class=""><br class="">
</div>
<div class="">Yours, Junxiao <br class="">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</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="">
</body>
</html>