Project

General

Profile

Actions

Task #1124

closed

Task #1115: Design Face and Prefix registration protocol

FIB management protocol

Added by Junxiao Shi over 10 years ago. Updated about 10 years ago.

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

100%

Estimated time:
1.50 h

Description

Define a FIB management protocol that can insert/delete FIB entry, and add/remove nexthop record.

Each nexthop is associated with a cost.
The cost represents a preference of this nexthop.
A nexthop with lower cost is prefered to a nexthop with higher cost.

Protocol: FibMgmt


Related issues 6 (0 open6 closed)

Related to ndn-cxx - Task #1162: Implement FIB management protocol in ndn-cppClosedWentao Shang01/28/2014

Actions
Related to NFD - Task #1236: FibManager encloses FibManagementOptions with successful responseClosed02/09/2014

Actions
Related to NFD - Task #1223: Implement remaining FIB management commandsClosed02/04/2014

Actions
Blocked by NFD - Task #1130: control command specClosedJunxiao Shi01/23/2014

Actions
Blocks NFD - Task #1141: ping applicationClosedJerald Paul Abraham01/28/2014

Actions
Blocks NFD - Task #1198: nfdc: command line client of FIB and Face management protocolsClosedHila Ben Abraham

Actions
Actions #1

Updated by Junxiao Shi over 10 years ago

  • Due date changed from 01/26/2014 to 01/24/2014
  • Status changed from New to In Progress
  • Start date changed from 01/22/2014 to 01/24/2014
  • Estimated time changed from 3.00 h to 1.50 h
Actions #2

Updated by Junxiao Shi over 10 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 0 to 100

Draft is on PrefixRegistration and needs review.

CAPTURE and set strategy on that document should have a separate task, because they are out of this task's scope.

Actions #3

Updated by Alex Afanasyev over 10 years ago

  • Target version set to Mock
Actions #4

Updated by Junxiao Shi over 10 years ago

  • Subject changed from prefix registration protocol to FIB management protocol
  • Description updated (diff)

20140124 meeting decides that child inheritance is the responsibility of control plane process nrd.

This is renamed as NFD FIB Management protocol.

Actions #5

Updated by Junxiao Shi about 10 years ago

I notice that @Wentao Shang added ForwardingFlags field into PrefixRegOptions.
Please explain the reason.

Actions #6

Updated by Alex Afanasyev about 10 years ago

It is still defined (as optional) in wiki's description of the protocol... Adding definition of the ForwardingFlags (nonNegativeInteger) was my suggestion, since it was not defined anywhere else.

Actions #7

Updated by Junxiao Shi about 10 years ago

In RFC, an optional field of a structure means that this field can be present or absent in the structure, but every implementation still needs to understand and process it.

NFD FIB Management protocol does not need ForwardingFlags.

ForwardingFlags should be defined in NRD Prefix Registration protocol.

Actions #8

Updated by Junxiao Shi about 10 years ago

NFD FIB Management protocol (rev6) is missing one feature: delete a FIB entry.

prefixunreg command removes a nexthop from a FIB entry.
When the last nexthop is removed, the FIB entry is still retained.
Therefore, once a FIB entry is created, it's there forever.

The alternative is, removing the last nexthop deletes the FIB entry.
This makes it impossible to create a FIB entry that has zero nexthop.

I propose to take the alternative: removing the last nexthop deletes the FIB entry.
This is the common case.
If there's a need for having a FIB entry with zero nexthop, a separate command could be defined.

Actions #9

Updated by Alex Afanasyev about 10 years ago

Yes. I like this common sense approach (remove the last next hop removes the FIB entry). I have updated FibMgmt wiki and also created a template for NRD wiki page.

Actions #10

Updated by Junxiao Shi about 10 years ago

There is still a problem: FIB entry not only contains the nexthop list, but also indicates a strategy choice.
If a FIB entry contains a strategy choice, but its last nexthop is removed, deleting the FIB entry would also delete the strategy choice.

On the other side, if prefixstrategy command causes insertion of a FIB entry, the nexthop list is copied from its parent.
NRD does not know the existence of a new FIB entry, so it would not update this nexthop list.

Actions #11

Updated by Junxiao Shi about 10 years ago

I also created a template for NRD wiki page.

NRD does not belong in this project.
A separate project should be created for NRD, and this page should be moved to NRD project.

Actions #12

Updated by Alex Afanasyev about 10 years ago

Wait a minute. I thought strategy selection is not directly tight to FIB entries. We have (should have) additional table that keeps mapping between namespace and strategy and this table is consulted every time a new FIB entry is created (not parent FIB entry, in UML, there is a map in FibManager for that).

Actions #13

Updated by Junxiao Shi about 10 years ago

  1. strategy table defines:
    • / uses original strategy
    • /A uses broadcast strategy
  2. Removing the last nexthop of /A deletes the FIB entry
  3. Interest /A/B matches FIB entry / which says "original strategy", but it should be processed by broadcast strategy.
Actions #14

Updated by Junxiao Shi about 10 years ago

FIB entry insertion and deletion is now explicit, as decided in 20140129 conference call.

Actions #15

Updated by Alex Afanasyev about 10 years ago

I will do an update of the FIB management protocol. Having separate definitions for each operation is overkill, I want to have just a generic FibManagementOptions and then define which fields are required for each operation.

Also. I think we should update the base protocol as well (may be later). Instead of just /localhost/nfd/<verb>/..., we should have /localhost/nfd/<management-module>/<verb>/.... For example, for FIB management it would be /localhost/nfd/fib/nexthop-insert.

Actions #16

Updated by Alex Afanasyev about 10 years ago

One more update of the spec: re-assigned numbers. The types are now assigned from the range specifically reserved for forwarding daemon use (I have updated TLV spec for that). To simplify our future debugging, the type assignment right now is non-overlapping.

Actions #17

Updated by Junxiao Shi about 10 years ago

  • Category set to Protocol
Actions #18

Updated by Alex Afanasyev about 10 years ago

  • Status changed from Resolved to Closed
Actions #19

Updated by Alex Afanasyev about 10 years ago

  • Status changed from Closed to Feedback

I'd like to reopen this issue. I'm really confused about the decision of this explicit FIB creation and having FIB entries without any next hops. What is the point of that?

We can have command to delete FIB entry, but that would simply remove FIB entry and all its next hops, not just an empty FIB entry.

Actions #20

Updated by Junxiao Shi about 10 years ago

  • Description updated (diff)
  • Due date deleted (01/24/2014)
  • Start date deleted (01/24/2014)
Actions #21

Updated by Junxiao Shi about 10 years ago

20140216 conference call discussed the reason that apps should register prefix with NRD, not with NFD:

  • RIB maintenance work is offloaded to NRD: inheritance, etc
  • if app registers prefix with NFD, the changes may not be consistent with changes made by routing protocols

NRD should be considered as "part of the forwarding platform", and they must run together.
If either NFD or NRD fails, "forwarding platform" also fails.

In the future, NFD and NRD might be combined into one process, under different threads.

Actions #22

Updated by Junxiao Shi about 10 years ago

  • Status changed from Feedback to Closed
Actions

Also available in: Atom PDF