Task #2491
closedDesign permanent faces
100%
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