Project

General

Profile

LocalControlHeader » History » Version 4

Alex Afanasyev, 02/05/2014 04:26 PM

1 1 Junxiao Shi
# NFD local control header
2 3 Alex Afanasyev
3
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.
4
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.
5
6
NFD local control header is not enabled by default and requires explicit request from the client to enable.
7
This request is in form of [[Signed_Interests|Signed Interest]] and have the following structure:
8
9
    /localhost/nfd/control-header/<command-verb>/<timestamp>/<SignatureInfo>/<SignatureValue>
10
    
11
    \                            / \           / \                                          /
12
     ------------  ------------     ----  -----   --------------------  --------------------
13
                 \/                     \/                            \/
14
       NFD Control Command         "enable" or       Signed Interest related information
15
                                    "disable"
16
17
18
## LocalControlHeader
19
20
If command to enable LocalControlHeader is authorized by NFD, all subsequent communication from NFD will include LocalControlHeader as defined below.
21
The authorized application will also be able to include LocalControlHeader in communication to NFD---until specifically enabled, all specified LocalControlHeaders should be ignored by NFD.
22
23
    LocalControlHeader ::= LOCAL-CONTROL-HEADER-TYPE TLV-LENGTH
24
                             LocalControlInfo
25
                             (Interest | Data)
26
27
    LocalControlInfo   ::= LOCAL-CONTROL-INFO-TYPE TLV-LENGTH
28 4 Alex Afanasyev
                             (IncomingFaceId |
29
                              OutgoingFaceId |
30
                              TapInfo)
31 1 Junxiao Shi
32 4 Alex Afanasyev
    IncomingFaceId     ::= INCOMING-FACE-ID-TYPE TLV-LENGTH
33
                              nonNegativeInteger
34 1 Junxiao Shi
35 4 Alex Afanasyev
    OutgoingFaceId     ::= INCOMING-FACE-ID-TYPE TLV-LENGTH
36
                              nonNegativeInteger
37
38
    TapInfo            ::= TAP-INFO-TYPE TLV-LENGTH
39
                             ...
40
                             (TBD)
41
42
43 3 Alex Afanasyev
## TLV-TYPE assignments
44
45
Type                                        | Assigned value    | Assigned value (hex)
46
------------------------------------------- | ----------------- | --------------------
47 1 Junxiao Shi
LocalControlHeader                          | 109               | 0x6d
48
LocalControlInfo                            | 110               | 0x6e
49 4 Alex Afanasyev
IncomingFaceId                              | 111               | 0x6f
50
OutgoingFaceId                              | 112               | 0x70
51
TapInfo                                     | 113               | 0x71