[Nfd-dev] Behavior of "on demand" faces to applications

Junxiao Shi shijunxiao at email.arizona.edu
Sat Mar 21 14:04:41 PDT 2015


Hi Jeff

A
A *persistent* TCP face is considered *failed* when TCP connection is
broken. There's no built-in way to re-establish the connection and routes.
#2491 <http://redmine.named-data.net/issues/2491> will provide the concept
of *permanent* face which does exactly that: TCP connection is
re-established after it's broken, and FaceId remains unchanged. This is
still in early idea stage.

The workaround used by NDN6.TK <http://yoursunny.com/p/ndn6/> is:

   1. use facemon
   <https://github.com/yoursunny/ndn6-tools/blob/master/facemon.md> to
   monitor face destroy events
   2. pipe the output of facemon to an awk script
   3. in the awk script, if the face to the uplink router is destroyed,
   invoke nfdc register to re-establish the face and register static routes

I'm attaching the awk script for reference.

B
A *persistent* UDP unicast face is considered *failed* when it receives an
ICMP error. During the restart of remote NFD, if local NFD sends a UDP
packet and gets back an ICMP error, the face will be destryoed; if local
NFD doesn't send during this period, the face should be intact.
As I remember, this behavior dates back to May 2014, and hasn't been
significantly changed since then.

You may use iptables to block incoming ICMP PortUnreachable error to avoid
face getting destroy.
Otherwise, the workaround above is also effective.

Yours, Junxiao

On Sat, Mar 21, 2015 at 1:44 PM, Burke, Jeff <jburke at remap.ucla.edu> wrote:

>  Alex / nfd folks,
>
>  We're going to make sure local connections are through unix sockets
> whenever available.
>
>  Two quick related questions.  Feel free to send a RTFM pointer:
>
>  #A -
> - Is there a built-in way for "persistent" routes to get re-established if
> the TCP connection goes down?   I interpreted your original description to
> mean this is not the default behavior.
>
>  #B -
> In the case of UDP faces, what happens in this situation:
>
>  1. nfdc is used to register (with a local NFD) a persistent UDP face for
> a remote NFD
> 2. The face is created successfully
> 3. The remote NFD is killed and then restarted
>
>  Is the intended behavior that the face created in #1 is still up after
> #3?   (And, has this been the case in all versions of NFD?  I am debugging
> a problem on an installation running an older version of NFD on the
> Raspberry PI.)
>
>  Thanks!
> Jeff
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/nfd-dev/attachments/20150321/76ca96d7/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tunnels.sh
Type: application/x-sh
Size: 1032 bytes
Desc: not available
URL: <http://www.lists.cs.ucla.edu/pipermail/nfd-dev/attachments/20150321/76ca96d7/attachment.sh>


More information about the Nfd-dev mailing list