Project

General

Profile

Actions

LocalControlHeader » History » Revision 17

« Previous | Revision 17/26 (diff) | Next »
Junxiao Shi, 02/14/2014 11:08 PM


NFD local control header

NFD local control header is used between application and local forwarding daemon to exchange various NFD-specific local information that is not part of Interest and Data packet.

For example, local control header allows applications to specify FaceId to which the Interest should be forwarded.

Enabling and disabling local control header

NFD local control header is not enabled by default and requires explicit request from the client to enable.

NFD MUST NOT deliver packets with LocalControlHeader to an application unless the application has enabled at least one control module.

This request to enable/disable local control header is in form of Command Interest and have the following structure:

/localhost/nfd/control-header/<control-module>/<command-verb>/<timestamp>/<random-value>/<SignatureInfo>/<SignatureValue>

\                            / \                            / \                                                         /
 ------------  ------------     ------------  --------------   ---------------------------  ----------------------------
             \/                             \/                                            \/
   NFD Control Command          "in-faceid"      "enable" or              Command Interest related information
                              "nexthop-faceid"    "disable"

An enable/disable command MAY NOT take effect immediately.
Packets scheduled for transmission before processing the enable/disable command successfully could be delivered or processed in the old state.

Control modules

in-faceid

This control module allows application to receive information about incoming FaceId for each received Interest and Data packet.

When enabled, packets will be encapsulated in LocalControlHeader, as defined below.

nexthop-faceid

This control module allows application to specify nexthop FaceId in outgoing Interests.

When enabled, NFD will accept incoming Interests encapsulated in LocalControlHeader that specifies nexthop FaceId to forward this Interest.

The specified NextHopFaceId is effective only if the Interest is under a namespace managed by ClientControl strategy.
If the namespace uses any other strategy, NextHopFaceId will be ignored.

<!--

  • sniffer Enable/disable sniffing on all or specific Faces. The format of this command is actually is a little bit different and requires one more option: <face-id>:

    /localhost/nfd/control-header/sniffer/(enable|disable)/<face-id>/<timestamp>/<SignatureInfo>/<SignatureValue>
    

    To snif on all faces, <face-id> should be 0.
    -->

LocalControlHeader

The LocalControlHeader is defined as follows:

LocalControlHeader ::= LOCAL-CONTROL-HEADER-TYPE TLV-LENGTH
                         LocalControlInfo
                         (Interest | Data)

LocalControlInfo   ::= LOCAL-CONTROL-INFO-TYPE TLV-LENGTH
                         (IncomingFaceId |
                          NextHopFaceId)

IncomingFaceId     ::= INCOMING-FACE-ID-TYPE TLV-LENGTH
                          nonNegativeInteger

NextHopFaceId      ::= NEXT-HOP-FACE-ID-TYPE TLV-LENGTH
                          nonNegativeInteger

<!--
SnifferInfo)
SnifferInfo ::= SNIFFER-INFO-TYPE TLV-LENGTH
...
(TBD)
-->

TLV-TYPE assignments

Type Assigned value Assigned value (hex)
LocalControlHeader 109 0x6d
LocalControlInfo 110 0x6e
IncomingFaceId 111 0x6f
NextHopFaceId 112 0x70
(reserved) 113 0x71

Updated by Junxiao Shi almost 11 years ago · 18 revisions