LocalControlHeader » History » Version 12
Alex Afanasyev, 02/05/2014 09:01 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 | 8 | Alex Afanasyev | /localhost/nfd/control-header/<control-module>/command-verb>/<timestamp>/<SignatureInfo>/<SignatureValue> |
10 | 1 | Junxiao Shi | |
11 | 8 | Alex Afanasyev | \ / \ / \ / |
12 | ------------ ------------ ------------ ------------- -------------------- -------------------- |
||
13 | \/ \/ \/ |
||
14 | NFD Control Command "in-faceid" "enable" or Signed Interest related information |
||
15 | "out-faceid" "disable" |
||
16 | 1 | Junxiao Shi | |
17 | 8 | Alex Afanasyev | Control modules: |
18 | 1 | Junxiao Shi | |
19 | 8 | Alex Afanasyev | * ``in-faceid`` Enable/disable ability to receive information about incoming FaceId for each received Interest and Data packet |
20 | |||
21 | After 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. |
||
22 | |||
23 | 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. |
||
24 | |||
25 | * ``out-faceid`` Enable/disable ability to specify outgoing FaceId. |
||
26 | |||
27 | After this command, NFD will accept incoming Interests encapsulated in LocalControlHeader that specifies outgoing FaceId to forward this Interest. |
||
28 | |||
29 | 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. |
||
30 | 1 | Junxiao Shi | |
31 | 12 | Alex Afanasyev | <!-- |
32 | 8 | Alex Afanasyev | * ``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>``: |
33 | |||
34 | /localhost/nfd/control-header/sniffer/(enable|disable)/<face-id>/<timestamp>/<SignatureInfo>/<SignatureValue> |
||
35 | |||
36 | 1 | Junxiao Shi | To snif on all faces, ``<face-id>`` should be 0. |
37 | 12 | Alex Afanasyev | --> |
38 | 8 | Alex Afanasyev | |
39 | 3 | Alex Afanasyev | ## LocalControlHeader |
40 | |||
41 | If command to enable LocalControlHeader is authorized by NFD, all subsequent communication from NFD will include LocalControlHeader as defined below. |
||
42 | 1 | Junxiao Shi | 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. |
43 | |||
44 | 3 | Alex Afanasyev | LocalControlHeader ::= LOCAL-CONTROL-HEADER-TYPE TLV-LENGTH |
45 | 4 | Alex Afanasyev | LocalControlInfo |
46 | (Interest | Data) |
||
47 | 1 | Junxiao Shi | |
48 | LocalControlInfo ::= LOCAL-CONTROL-INFO-TYPE TLV-LENGTH |
||
49 | 8 | Alex Afanasyev | (IncomingFaceId | |
50 | 12 | Alex Afanasyev | NextHopFaceId+) |
51 | 4 | Alex Afanasyev | |
52 | 1 | Junxiao Shi | IncomingFaceId ::= INCOMING-FACE-ID-TYPE TLV-LENGTH |
53 | 4 | Alex Afanasyev | nonNegativeInteger |
54 | 1 | Junxiao Shi | |
55 | NextHopFaceId ::= NEXT-HOP-FACE-ID-TYPE TLV-LENGTH |
||
56 | nonNegativeInteger |
||
57 | |||
58 | 12 | Alex Afanasyev | |
59 | <!-- |
||
60 | SnifferInfo) |
||
61 | 1 | Junxiao Shi | SnifferInfo ::= SNIFFER-INFO-TYPE TLV-LENGTH |
62 | 8 | Alex Afanasyev | ... |
63 | 1 | Junxiao Shi | (TBD) |
64 | 12 | Alex Afanasyev | --> |
65 | 4 | Alex Afanasyev | |
66 | 3 | Alex Afanasyev | ## TLV-TYPE assignments |
67 | |||
68 | Type | Assigned value | Assigned value (hex) |
||
69 | 1 | Junxiao Shi | ------------------------------------------- | ----------------- | -------------------- |
70 | LocalControlHeader | 109 | 0x6d |
||
71 | LocalControlInfo | 110 | 0x6e |
||
72 | 4 | Alex Afanasyev | IncomingFaceId | 111 | 0x6f |
73 | 8 | Alex Afanasyev | NextHopFaceId | 112 | 0x70 |
74 | 12 | Alex Afanasyev | Reserved | 113 | 0x71 |