blob: 77808b5475cf421f764726fc3bbb617ed1d32335 [file] [log] [blame]
Alexander Afanasyev20cc34e2014-05-07 01:28:34 -07001; The general section contains settings of nfd process.
2; general
3; {
4; }
5
6log
7{
8 ; default_level specifies the logging level for modules
9 ; that are not explicitly named. All debugging levels
10 ; listed above the selected value are enabled.
11 ;
12 ; Valid values:
13 ;
14 ; NONE ; no messages
15 ; ERROR ; error messages
16 ; WARN ; warning messages
17 ; INFO ; informational messages (default)
18 ; DEBUG ; debugging messages
19 ; TRACE ; trace messages (most verbose)
20 ; ALL ; all messages
21
22 default_level INFO
23
24 ; You may override default_level by assigning a logging level
25 ; to the desired module name. Module names can be found in two ways:
26 ;
27 ; Run:
28 ; nfd --modules
Alexander Afanasyev20cc34e2014-05-07 01:28:34 -070029 ;
30 ; Or look for NFD_LOG_INIT(<module name>) statements in .cpp files
31 ;
32 ; Example module-level settings:
33 ;
34 ; FibManager DEBUG
35 ; Forwarder INFO
36}
37
Alexander Afanasyevf9312c32014-12-18 14:23:41 -080038; The tables section configures the CS, PIT, FIB, Strategy Choice, and Measurements
39tables
40{
41
42 ; ContentStore size limit in number of packets
43 ; default is 65536, about 500MB with 8KB packet size
44 cs_max_packets 65536
45
46 ; Set the forwarding strategy for the specified prefixes:
47 ; <prefix> <strategy>
48 strategy_choice
49 {
50 / /localhost/nfd/strategy/best-route
51 /localhost /localhost/nfd/strategy/broadcast
52 /localhost/nfd /localhost/nfd/strategy/best-route
53 /ndn/broadcast /localhost/nfd/strategy/broadcast
54 }
55}
56
Alexander Afanasyev20cc34e2014-05-07 01:28:34 -070057; The face_system section defines what faces and channels are created.
58face_system
59{
60 ; The unix section contains settings of UNIX stream faces and channels.
Alexander Afanasyev011558e2015-01-17 19:54:54 -080061 ; Unix channel is always listening; delete unix section to disable
62 ; Unix stream faces and channels.
Alexander Afanasyev20cc34e2014-05-07 01:28:34 -070063 unix
64 {
Alexander Afanasyev20cc34e2014-05-07 01:28:34 -070065 path /var/run/nfd.sock ; UNIX stream listener path
66 }
67
68 ; The tcp section contains settings of TCP faces and channels.
69 tcp
70 {
71 listen yes ; set to 'no' to disable TCP listener, default 'yes'
72 port 6363 ; TCP listener port number
73 enable_v4 yes ; set to 'no' to disable IPv4 channels, default 'yes'
74 enable_v6 yes ; set to 'no' to disable IPv6 channels, default 'yes'
75 }
76
77 ; The udp section contains settings of UDP faces and channels.
78 ; UDP channel is always listening; delete udp section to disable UDP
79 udp
80 {
81 port 6363 ; UDP unicast port number
82 enable_v4 yes ; set to 'no' to disable IPv4 channels, default 'yes'
83 enable_v6 yes ; set to 'no' to disable IPv6 channels, default 'yes'
84 idle_timeout 600 ; idle time (seconds) before closing a UDP unicast face
85 keep_alive_interval 25; interval (seconds) between keep-alive refreshes
86
87 ; UDP multicast settings
88 ; NFD creates one UDP multicast face per NIC
89 mcast yes ; set to 'no' to disable UDP multicast, default 'yes'
90 mcast_port 56363 ; UDP multicast port number
91 mcast_group 224.0.23.170 ; UDP multicast group (IPv4 only)
92 }
93
Alexander Afanasyev011558e2015-01-17 19:54:54 -080094 ; The ether section contains settings of Ethernet faces and channels.
95 ether
96 {
97 ; Ethernet multicast settings
98 ; NFD creates one Ethernet multicast face per NIC
99 mcast yes ; set to 'no' to disable Ethernet multicast, default 'yes'
100 mcast_group 01:00:5E:00:17:AA ; Ethernet multicast group
101 }
102
103 ; The websocket section contains settings of WebSocket faces and channels.
104
105 websocket
106 {
107 listen yes ; set to 'no' to disable WebSocket listener, default 'yes'
108 port 9696 ; WebSocket listener port number
109 enable_v4 yes ; set to 'no' to disable listening on IPv4 socket, default 'yes'
110 enable_v6 yes ; set to 'no' to disable listening on IPv6 socket, default 'yes'
111 }
Alexander Afanasyev20cc34e2014-05-07 01:28:34 -0700112}
113
114authorizations
115{
116 authorize
117 {
Alexander Afanasyev15982622015-05-12 23:24:09 -0700118 certfile certs/localhost_daemons_nfd.ndncert
Alexander Afanasyev20cc34e2014-05-07 01:28:34 -0700119 privileges
120 {
121 faces
122 fib
123 strategy-choice
124 }
125 }
126
127 authorize
128 {
129 certfile any
130 privileges
131 {
132 faces
133 strategy-choice
134 }
135 }
136}
137
138rib
139{
140 ; The following localhost_security allows anyone to register routing entries in local RIB
141 localhost_security
142 {
143 trust-anchor
144 {
145 type any
146 }
147 }
148
149 ; localhop_security should be enabled when NFD runs on a hub.
150 ; "/localhop/nfd/fib" command prefix will be disabled when localhop_security section is missing.
151 ; localhop_security
152 ; {
153 ; ; This section defines the trust model for NFD RIB Management. It consists of rules and
154 ; ; trust-anchors, which are briefly defined in this file. For more information refer to
155 ; ; manpage of ndn-validator.conf:
156 ; ;
157 ; ; man ndn-validator.conf
158 ; ;
159 ; ; A trust-anchor is a pre-trusted certificate. This can be any certificate that is the
160 ; ; root of certification chain (e.g., NDN testbed root certificate) or an existing
161 ; ; default system certificate `default.ndncert`.
162 ; ;
163 ; ; A rule defines conditions a valid packet MUST have. A packet must satisfy one of the
164 ; ; rules defined here. A rule can be broken into two parts: matching & checking. A packet
165 ; ; will be matched against rules from the first to the last until a matched rule is
166 ; ; encountered. The matched rule will be used to check the packet. If a packet does not
167 ; ; match any rule, it will be treated as invalid. The matching part of a rule consists
168 ; ; of `for` and `filter` sections. They collectively define which packets can be checked
169 ; ; with this rule. `for` defines packet type (data or interest) and `filter` defines
170 ; ; conditions on other properties of a packet. Right now, you can only define conditions
171 ; ; on packet name, and you can only specify ONLY ONE filter for packet name. The
172 ; ; checking part of a rule consists of `checker`, which defines the conditions that a
173 ; ; VALID packet MUST have. See comments in checker section for more details.
174 ;
175 ; rule
176 ; {
177 ; id "NRD Prefix Registration Command Rule"
178 ; for interest ; rule for Interests (to validate CommandInterests)
179 ; filter
180 ; {
181 ; type name ; condition on interest name (w/o signature)
182 ; regex ^[<localhop><localhost>]<nfd><rib>[<register><unregister>]<>{3}$
183 ; }
184 ; checker
185 ; {
186 ; type customized
187 ; sig-type rsa-sha256 ; interest must have a rsa-sha256 signature
188 ; key-locator
189 ; {
190 ; type name ; key locator must be the certificate name of the
191 ; ; signing key
192 ; regex ^[^<KEY>]*<KEY><>*<ksk-.*><ID-CERT>$
193 ; }
194 ; }
195 ; }
196 ; rule
197 ; {
198 ; id "NDN Testbed Hierarchy Rule"
199 ; for data ; rule for Data (to validate NDN certificates)
200 ; filter
201 ; {
202 ; type name ; condition on data name
203 ; regex ^[^<KEY>]*<KEY><>*<ksk-.*><ID-CERT><>$
204 ; }
205 ; checker
206 ; {
207 ; type hierarchical ; the certificate name of the signing key and
208 ; ; the data name must follow the hierarchical model
209 ; sig-type rsa-sha256 ; data must have a rsa-sha256 signature
210 ; }
211 ; }
212 ; trust-anchor
213 ; {
214 ; type file
215 ; file-name keys/default.ndncert ; the file name, by default this file should be placed in the
216 ; ; same folder as this config file.
217 ; }
218 ; ; trust-anchor ; Can be repeated multiple times to specify multiple trust anchors
219 ; ; {
220 ; ; type file
221 ; ; file-name keys/ndn-testbed.ndncert
222 ; ; }
223 ; }
Alexander Afanasyevf9312c32014-12-18 14:23:41 -0800224
225 remote_register
226 {
227 cost 15 ; forwarding cost of prefix registered on remote router
228 timeout 10000 ; timeout (in milliseconds) of remote prefix registration command
229 retry 0 ; maximum number of retries for each remote prefix registration command
230
231 refresh_interval 300 ; interval (in seconds) before refreshing the registration
232 ; This setting should be less than face_system.udp.idle_time,
233 ; so that the face is kept alive on the remote router.
234 }
Alexander Afanasyev20cc34e2014-05-07 01:28:34 -0700235}