Project

General

Profile

Actions

FibMgmt » History » Revision 41

« Previous | Revision 41/44 (diff) | Next »
Davide Pesavento, 06/05/2019 04:31 PM


FIB Management

FIB Management is a module of NFD Management protocol.
It provides:

  • commands to insert, update, and delete FIB entries and nexthop records
  • a dataset of FIB entries and nexthop records

FIB Management commands and datasets are available under namespace ndn:/localhost/nfd/fib.

Control Commands

ControlCommand management-module: fib

Add a nexthop

command-verb: add-nexthop

This command adds a nexthop to a FIB entry.
If the FIB entry does not exist, it is inserted automatically.

ControlParameters fields:

  • Name (required)
  • FaceId (optional)
  • Cost (optional)

Name is the name prefix of the FIB entry.
A forwarder MAY impose a limit on the length of name prefix. The current limit in NFD is 32 name components.
If Name exceeds this limit, the command fails with code 414.

FaceId is the FaceId returned by Face Management.
If FaceId is omitted or is set to zero, it is implied as the requesting face (self).
If the face does not exist, the command fails with code 410.

Cost defaults to zero.
If a nexthop with the same FaceId exists on the FIB entry, its cost is updated.

If the command succeeds, <Body> in ControlResponse block contains updated ControlParameters:

  • Name: unchanged
  • FaceId: nexthop FaceId (not zero)
  • Cost: unchanged if request has this field; zero if request omits this field

Remove a nexthop

command-verb: remove-nexthop

This command removes a nexthop from a FIB entry.
If the last nexthop record in a FIB entry is removed, the FIB entry is deleted automatically.

ControlParameters fields:

  • Name (required)
  • FaceId (optional)

FaceId is the FaceId returned by Face Management.
If FaceId is omitted or is set to zero, it is implied as the requesting face (self).

If the face or FIB entry or nexthop record do not exist, this command does nothing, but is still considered successful.

If the command succeeds, <Body> in ControlResponse block contains updated ControlParameters:

  • Name: unchanged
  • FaceId: nexthop FaceId (not zero)

FIB Dataset

FIB entries and nexthop records are published as a Status Dataset at ndn:/localhost/nfd/fib/list.

Each FIB entry is represented by a FibEntry block:

FibEntry      := FIB-ENTRY-TYPE TLV-LENGTH
                   Name
                   NextHopRecord+

NextHopRecord := NEXT-HOP-RECORD-TYPE TLV-LENGTH
                   FaceId
                   Cost
                   EndpointId

TLV-TYPE assignments

Type Assigned value Assigned value (hex)
FibEntry 128 0x80
NextHopRecord 129 0x81
FaceId (shared with ControlCommand) 105 0x69
Cost (shared with ControlCommand) 106 0x6a
EndpointId 113 0x71

Updated by Davide Pesavento over 5 years ago · 36 revisions