1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
|
% DLT.CONF(5)
# NAME
**dlt.conf** - DLT daemon configuration file
# DESCRIPTION
The DLT daemon is the central application which gathers logs and traces from different applications, stores them temporarily or permanently and transfers them to a DLT client application, which could run directly on the GENIVI system or more likely on some external tester device.
The configuration file dlt.conf allows to configure the different
runtime behaviour of the dlt-daemon. It is loaded during startup of dlt-daemon.
# GENERAL OPTIONS
## Verbose
Start daemon in debug mode, so that all internal debug information is printed out on the console.
Default: Off
## Daemonize
If set to 1 DLT daemon is started in background as daemon. This option is only needed in System V init systems. In systemd based startup systems the daemon is started by spawning own process.
Default: 0
## SendSerialHeader
If set to 1 DLT daemon sends each DLT message to the client with prepanding the serial header "DLS0x01".
Default: 0
## SendContextRegistration
If set to 1 each context which is registered from an application in the DLT daemon generates a message to inform the DLT client about the new context.
Default: 1
## SendMessageTime
If set to 1 DLt daemon sends each second a DLT control message to the client with the current timestamp from the system.
Default: 0
## ECUId
This value sets the ECU Id, which is sent with each DLT message.
Default: ECU1
## SharedMemorySize
This value sets the size of the shared memory, which is used to exchange DLT messages between applications and daemon. This value is defined in bytes. If this value is changed the system must be rebooted to take effect.
Default: 100000
## PersistanceStoragePath
This is the directory path, where the DLT daemon stores its runtime configuration. Runtime configuration includes stored log levels, trace status and changed logging mode.
Default: /tmp
## LoggingMode
The logging console for internal logging of dlt-daemon. 0 = log to stdout, 1 = log to syslog, 2 = log to file (see LoggingFilename), 3 = log to stderr
Default: 0
## LoggingLevel
The internal log level, up to which logs are written. LOG_EMERG = 0, LOG_ALERT = 1, LOG_CRIT = 2, LOG_ERR = 3, LOG_WARNING = 4, LOG_NOTICE = 5, LOG_INFO = 6, LOG_DEBUG = 7
Default: 6
## LoggingFilename
If LoggingMode is set to 2 logs are written to the file path given here.
Default: /tmp/dlt.log
## TimeOutOnSend
Socket timeout in seconds for sending to clients.
Default: 4
## RingbufferMinSize
The minimum size of the Ringbuffer, used for storing temporary DLT messages, until client is connected.
Default: 500000
## RingbufferMaxSize
The max size of the Ringbuffer, used for storing temporary DLT messages, until client is connected.
Default: 10000000
## RingbufferStepSize
The step size the Ringbuffer is increased, used for storing temporary DLT messages, until client is connected.
Default: 500000
## Daemon FIFOSize
The size of Daemon FIFO (MinSize: depend on pagesize of system, MaxSize: please check `/proc/sys/fs/pipe-max-size`)
This is only supported for Linux.
Default: 65536
## ContextLogLevel
Initial log-level that is sent when an application registers. DLT_LOG_OFF = 0, DLT_LOG_FATAL = 1, DLT_LOG_ERROR = 2, DLT_LOG_WARN = 3, DLT_LOG_INFO = 4, DLT_LOG_DEBUG = 5, DLT_LOG_VERBOSE = 6
Default: 4
## ContextTraceStatus
Initial trace-status that is sent when an application registers. DLT_TRACE_STATUS_OFF = 0, DLT_TRACE_STATUS_ON = 1
Default: 0
## ForceContextLogLevelAndTraceStatus
Force log level and trace status of contexts to not exceed "ContextLogLevel" and "ContextTraceStatus". If set to 1 (ON) whenever a context registers or changes the log-level it has to be lower or equal to ContextLogLevel.
Default: 0
## InjectionMode
If set to 0, the injection mode (see [here](./dlt_for_developers.md#DLT-Injection-Messages)) is disabled.
Default: 1
# GATEWAY CONFIGURATION
## GatewayMode
Enable Gateway mode
Default: 0
## GatewayConfigFile
Read gateway configuration from another location
Default: /etc/dlt_gateway.conf
# Permission configuration
DLT daemon runs with e.g.
User: genivi_dlt
Group: genivi_dlt
DLT user applications run with different user and group than dlt-daemon but with supplimentory group: dlt_user_apps_group
<basedir>/dlt FIFO will be created by dlt-daemon with
User: genivi_dlt
Group: dlt_user_apps_group
Permission: 620
so that only dlt-daemon can read and only processes in dlt_user_apps_group can write.
<basedir>/dltpipes will be created by dlt-daemon with
User: genivi_dlt
Group: genivi_dlt
Permission: 3733 (i.e Sticky bit and SGID turned on)
<basedir>/dltpipes/dlt<PID> FIFO will be created by dlt application (user lib) with
User: <user of the application>
Group: genivi_dlt (inherited from <basedir>dltpipes/ due to SGID)
Permission: 620
Thus DLT user applications (and also or attackers) can create the dlt<PID> FIFO
(for communication from dlt-daemon to DLT user application) under <basedir>/dltpipes/. Since sticky bit is set the applications who creates the FIFO can only rename/delete it.
Since SGID of <basedir>/dltpipes is set the group of dlt<PID> FIFO will be genivi_dlt which enables dlt daemon to have write permission on all the dlt<PID> FIFO.
One dlt user application cannot access dlt<PID> FIFO created by other dlt user application(if they run with different user).
Owner group of daemon FIFO directory(Default: /tmp/dlt) (If not set, primary group of dlt-daemon process is used).
Application should have write permission to this group for tracing into dlt. For this opton to work, dlt-daemon should have this group in it's supplementary group.
## DaemonFifoGroup
Owner group of daemon FIFO directory
(If not set, primary group of dlt-daemon process is used)
Application should have write permission to this group for tracing into dlt
For this opton to work, dlt-daemon should have this group in it's Supplementary group
Default: group of dlt-daemon process (/tmp/dlt)
# CONTROL APPLICATION OPTIONS
## ControlSocketPath
Path to control socket.
Default: /tmp/dlt-ctrl.sock
# OFFLINE TRACE OPTIONS
## OfflineTraceDirectory
Store DLT messages to local directory, if not set offline Trace is off.
Default: /tmp
## OfflineTraceFileSize
This value defines the max size of a offline trace file, if offline trace is enabled. This value is defined in bytes. If the files size of the current used log file is exceeded, a new log file is created.
Default: 1000000
## OfflineTraceMaxSize
This value defines the max offline Trace memory size, if offline trace is enabled. This value is defined in bytes. If the overall offline trace size is excedded, the oldest log files are deleted, until a new trace file fits the overall offline trace max size.
Default: 4000000
## OfflineTraceFileNameTimestampBased
Filename timestamp based or index based. 1 = timestamp based, 0 = index based
Default: Function is disabled
# LOCAL CONSOLE OUTPUT OPTIONS
## PrintASCII
Prints each received DLT message from the application in ASCII to the local console. This option should only be anabled for debugging purpose.
Default: Function is disabled
## PrintHex
Prints each received DLT message from the application in ASCII to the local console. The payload is printed in Hex. This option should only be anabled for debugging purpose.
Default: Function is disabled
## PrintHeadersOnly
Prints each received DLT message from the application in ASCII to the local console. Only the header is printed. This option should only be anabled for debugging purpose.
Default: Function is disabled
# SERIAL CLIENT OPTIONS
## RS232DeviceName
If this value is set to a serial device name, e.g. /dev/ttyS0, a serial port is used for logging to a client.
Default: Serial port for logging is disabled
## RS232Baudrate
The used serial baud rate, if serial loggin is enabled. The RS232DeviceName must be set to enable serial logging.
Default: 115200
## RS232SyncSerialHeader
If serial logging is enabled, each received DLT message is checked to contain a serial header. If the DLT message contains no serial header, the message is ignored.
Default: Function is disabled
# TCP CLIENT OPTIONS
## TCPSyncSerialHeader
Each received DLT message on a TCP connection is checked to contain a serial header. If the DLT message contains no serial header, the message is ignored.
Default: Function is disabled
# ECU SOFTWARE VERSION OPTIONS
## SendECUSoftwareVersion
Periodically send ECU version info. 0 = disabled, 1 = enabled
Default: Function is disabled
# PathToECUSoftwareVersion
Absolute path to file storing version information - if disabled the DLT version will be send.
Default: Function is disabled.
# TIMEZONE INFO OPTIONS
# SendTimezone
Periodically send timezone info. 0 = disabled, 1 = enabled
Default: Function is disabled
# OFFLINE LOGSTORAGE OPTIONS
## OfflineLogstorageMaxDevices
Maximum devices to be used as offline logstorage devices. 0 = disabled, 1 .. DLT_OFFLINE_LOGSTORAGE_MAX_DEVICES
Default: 0 (Function is disabled)
## OfflineLogstorageDirPath
Path to store DLT offline log storage messages.
Default: off
## OfflineLogstorageTimestamp
Appends timestamp in log file name. 0 = disabled, 1 = enabled
Default: 0
## OfflineLogstorageDelimiter
Appends delimiter in log file name, only punctuation characters allowed.
Default: _
## OfflineLogstorageMaxCounter
Wrap around value for log file count in file name.
Default: UINT_MAX
## OfflineLogstorageCacheSize
Maximal used memory for log storage cache in KB.
Default: 30000 KB
## UDPConnectionSetup
Enable or disable UDP connection. 0 = disabled, 1 = enabled
## UDPMulticastIPAddress
The address on which daemon multicasts the log messages
## UDPMulticastIPPort
The Multicase IP port. Default: 3491
# AUTHOR
Alexander Wenzel (alexander.aw.wenzel (at) bmw (dot) de)
# COPYRIGHT
Copyright (C) 2015 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 <http://mozilla.org/MPL/2.0/>.
# BUGS
See Github issue: <https://github.com/GENIVI/dlt-daemon/issues>
# SEE ALSO
**dlt-daemon(1)**, **dlt-system(1)**
|