LocalControlHeader » History » Revision 15
« Previous |
Revision 15/26
(diff)
| Next »
Alex Afanasyev, 02/10/2014 10:52 AM
NFD local control header¶
NFD local control header can be 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, the control header allows applications to request bypassing the Interest forwarding strategy by directly specify FaceId to which the Interest should be forwarded.
NFD local control header is not enabled by default and requires explicit request from the client to enable.
This request is in form of Signed Interest and have the following structure:
/localhost/nfd/control-header/<control-module>/command-verb>/<timestamp>/<SignatureInfo>/<SignatureValue>
\ / \ / \ /
------------ ------------ ------------ ------------- -------------------- --------------------
\/ \/ \/
NFD Control Command "in-faceid" "enable" or Signed Interest related information
"nexthop-faceid" "disable"
Control modules:
in-faceid
Enable/disable ability to receive information about incoming FaceId for each received Interest and Data packetAfter successful enable, subsequent packets will be encapsulated in within LocalControlHeader, as defined below. And vice versa, after successful disable, subsequent packets will not be encapsulated.
Note that the command may not be immediate. Packets that were scheduled for transmission before the command arrival will be received without (or with) LocalControlHeader present.
nexthop-faceid
Enable/disable ability to specify nexthop FaceId.After this command, NFD will accept incoming Interests encapsulated in LocalControlHeader that specifies nexthop FaceId to forward this Interest.
Note that this will affect only Interest for namespaces that is managed by special
ClientControl
strategy. If FIB entry for the Interest uses any other strategy, information specified in LocalControlHeader 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 Alex Afanasyev almost 11 years ago · 18 revisions