FibMgmt » History » Revision 13
      « Previous |
    Revision 13/45
      (diff)
      | Next »
    
    Junxiao Shi, 01/30/2014 12:53 PM 
    
    
NFD FIB Management Protocol¶
The FIB management protocol allows an entity to manipulate the FIB entry.
The FIB management protocol uses Signed Interests-Data exchange.
The command request and response follows the NFD Control Command specification
Command format¶
Request¶
Request is a signed Interest with the following name:
/localhost/nfd/fib/<command-verb>/<command-options>/<timestamp>/<SignatureInfo>/<SignatureValue>
\                / \                              / \                                          /
 -------  -------   -------------  ---------------   --------------------  --------------------
        \/                       \/                                      \/
NFD Control Command       FibManager command             Signed Interest related information
to FibManager             and command options
Command options is defined as a TLV-encoded FibManagementOptions block.
Each individual command defines a subset of required and optional elements in the FibManagementOptions block.
FibManagementOptions ::= FIB-MANAGEMENT-OPTIONS-TYPE TLV-LENGTH
                           Name?
                           FaceId?
                           Cost?
                           Strategy?
// Name defined in NDN-TLV spec
FaceId               ::= FACEID-TYPE TLV-LENGTH
                           nonNegativeInteger
Cost                 ::= COST-TYPE TLV-LENGTH
                           nonNegativeInteger
Strategy             ::= STRATEGY-TYPE TLV-LENGTH
                           Name
Response¶
Command response is a Data packet that contains TLV-encoded ControlResponse block, defined in NFD Control Command specification.
The response has StatusCode 200 if the command succeeds.
<!-- Alex: Should positive responses contain TLV-Encoded FibManagementOptions block related to the command (after StatusText)? -->
Any other status code (4xx, 5xx, [?]) mean error.
Description of the error can be present in StatusText field of ControlResponse command.
Operations¶
FIB management protocol protocol supports five operations:
- insert a FIB entry (command-verb: insert)
- delete a FIB entry (command-verb: delete)
- add a nexthop to a FIB entry (command-verb: add-nexthop)
- remove a nexthop from a FIB entry (command-verb: remove-nexthop)
- set the forwarding strategy for a namespace (command-verb: set-strategy)
Insert a FIB entry¶
command-verb: insert
Required fields in FibManagementOptions block:
- Name
If a FIB entry for Name already exists, this command does nothing, but is still considered successful.
Delete a FIB entry¶
command-verb: delete
Required fields in FibManagementOptions block:
- Name
If a FIB entry for Name does not exist, this command does nothing, but is still considered successful.
Add a nexthop¶
command-verb: add-nexthop
This command adds a nexthop to an existing FIB entry.
Required fields in FibManagementOptions block:
- Name
- FaceId
- Cost
If a nexthop of same FaceId exists on the FIB entry, its cost is updated.
FaceId is the FaceId returned in NFD Face Management protocol.
If FaceId is set to zero, it is implied as the face of the entity sending this command.
If the FIB entry does not exist, the response has StatusCode 404.
Remove a nexthop¶
command-verb: remove-nexthop
This command removes a nexthop from a FIB entry.
Removing the last nexthop in a FIB entry will not automatically delete the FIB entry.
Required fields in FibManagementOptions block:
- Name
- FaceId
FaceId is the FaceId returned in NFD Face Management protocol.
If FaceId is set to zero, it is implied as the face of the entity sending this command.
If the FIB entry does not exist, the response has StatusCode 404.
If the specified nexthop does not exist on the FIB entry, this command does nothing,
but is still considered successful.
Set strategy¶
This command sets a forwarding strategy for a namespace.
The format of this command will be defined in a later version of this spec.
Required fields in FibManagementOptions block:
- Name
- Strategy
TLV-TYPE assignments¶
| Type | Assigned value | Assigned value (hex) | 
|---|---|---|
| FibManagementOptions | 129 | 0x81 | 
| FaceId | 130 | 0x82 | 
| Cost | 131 | 0x83 | 
| Strategy | 132 | 0x84 | 
Updated by Junxiao Shi over 11 years ago · 37 revisions