Project

General

Profile

Actions

Task #2491

closed

Design permanent faces

Added by Junxiao Shi over 9 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Faces
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
9.00 h

Description

Socket error in a point-to-point face is treated currently as a face failure and causes NFD to close the face, delete FIB nexthop records referencing the failing face, send face failure Notification, delete Routes referencing the failing face (by RIB Daemon in response to notification).

This behavior is undesirable for backbone links.

Today backbone links are mostly created by NLSR, the routing daemon chosen by NDN testbed.
It is an unfortunate implementation choice due to NFD's inability to make backbone links permanent.

Ideally, creating and maintaining tunnels that represent backbone links shouldn't be the responsibility of routing protocols.
It's also difficult to deploy a network with static routes and no routing protocol.

A permanent face is maintained by NFD, is not affected by failures, and is kept until destroyed by management.
During the period of temporary failure, forwarding should be able to notice the face as down and avoid using it.
Socket errors are handled internally; socket is recreated or reconnected as necessary; FaceId is unchanged.

This Task is to provide a design of permanent faces. The design should include:

  • necessity of permanent faces
  • guarantees provided by a permanent face
  • semantics of up/down state of a permanent face
  • how forwarding (pipelines and strategy) could make use of up/down state of a permanent face
  • impact on RIB daemon
  • impact on NLSR
  • impact on network operations

Files

permface_20150610.pptx (69 KB) permface_20150610.pptx Junxiao Shi, 06/10/2015 11:36 AM
permface_20150623.pptx (69.4 KB) permface_20150623.pptx Junxiao Shi, 06/23/2015 03:39 PM

Related issues 3 (0 open3 closed)

Related to NFD - Feature #2989: Minimal UDP permanent faceClosedYukai Tu

Actions
Related to NFD - Feature #3173: Developer Guide: Face=LinkService+Transport and GenericLinkServiceClosedJunxiao Shi

Actions
Blocks NLSR - Feature #2954: Discover Available FacesClosed06/07/2017

Actions
Actions #1

Updated by Davide Pesavento over 9 years ago

The ad-hoc V2V faces (#1217) must be "permanent" too.

Actions #2

Updated by Lan Wang over 9 years ago

Thanks for creating this issue. I was going to bring it up at one of the nfd calls. Without this permanent face, NLSR has to rely on its periodic hello messages to detect when the face can be created again. The default Hello timer value is 60 seconds, so we often see a delay up to 60 seconds to react to the recovery of a failed link. This failure recovery time will be greatly improved if the face is permanent and NLSR can receive a notification when the face is up again. I can assign a student to implement this when Junxiao's design is reviewed.

Actions #3

Updated by Jeff Burke over 9 years ago

I second Lan's comments. This is an extremely valuable feature for deployed applications. Suggest making it "high priority".

Actions #4

Updated by Junxiao Shi over 9 years ago

  • Status changed from New to In Progress
Actions #5

Updated by Junxiao Shi over 9 years ago

  • % Done changed from 0 to 20
Actions #6

Updated by Junxiao Shi over 9 years ago

I have completed the first draft. Please review.

I recognize that permanent faces depend on NDNLPv2 BFD feature, so that this cannot complete until BFD is defined.

Actions #7

Updated by Davide Pesavento over 9 years ago

  • Status changed from Resolved to Feedback
Actions #8

Updated by Junxiao Shi over 9 years ago

20150622 conference call reviewed the design.

Changes are made:

  • If strategy intends to send an Interest out of a DOWN face, the face should transmit the Interest if the underlying socket allows immediate transmission (eg. TCP established).
  • Strategy shouldn't stop trying a retrieval even if all downstreams are DOWN. This is especially important in Delay Tolerant Networks.

We also discussed the possibility of having a partial implementation before NDNLPv2 BFD functionality is ready. The idea is:

  • define FacePersistency value "permanent"
  • implement in UDP face only: a permanent UDP face ignores all socket errors
  • there's no UP/DOWN state transition; an operator who decides to use a permanent face must take care to choose a strategy that is able to try multiple faces (ie. not best-route)
Actions #9

Updated by Vince Lehman over 9 years ago

Actions #11

Updated by Junxiao Shi over 9 years ago

Actions #13

Updated by Junxiao Shi over 9 years ago

  • Status changed from Resolved to Closed

20150626 conference call approves note-8 design, and decides to start a minimal implementation (#2989 #2990 #2991 #2993 #2994), mainly to support the "unattended device" scenario.

Actions #14

Updated by Junxiao Shi about 9 years ago

  • Related to Feature #3173: Developer Guide: Face=LinkService+Transport and GenericLinkService added
Actions

Also available in: Atom PDF