summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md89
-rw-r--r--doc/CMakeLists.txt35
-rw-r--r--doc/dlt-convert.1139
-rw-r--r--doc/dlt-convert.1.md95
-rw-r--r--doc/dlt-convert.1.txt94
-rw-r--r--doc/dlt-daemon.199
-rw-r--r--doc/dlt-daemon.1.md76
-rw-r--r--doc/dlt-daemon.1.txt78
-rw-r--r--doc/dlt-logstorage-ctrl.1122
-rw-r--r--doc/dlt-logstorage-ctrl.1.md70
-rw-r--r--doc/dlt-logstorage-ctrl.1.txt73
-rw-r--r--doc/dlt-passive-node-ctrl.1117
-rw-r--r--doc/dlt-passive-node-ctrl.1.md70
-rw-r--r--doc/dlt-passive-node-ctrl.1.txt67
-rw-r--r--doc/dlt-receive.1137
-rw-r--r--doc/dlt-receive.1.md101
-rw-r--r--doc/dlt-receive.1.txt92
-rw-r--r--doc/dlt-sortbytimestamp.1103
-rw-r--r--doc/dlt-sortbytimestamp.1.md (renamed from doc/dlt-sortbytimestamp.1.txt)97
-rw-r--r--doc/dlt-system.176
-rw-r--r--doc/dlt-system.1.md57
-rw-r--r--doc/dlt-system.1.txt61
-rw-r--r--doc/dlt-system.conf.5526
-rw-r--r--doc/dlt-system.conf.5.md217
-rw-r--r--doc/dlt-system.conf.5.txt227
-rw-r--r--doc/dlt.conf.5656
-rw-r--r--doc/dlt.conf.5.md294
-rw-r--r--doc/dlt.conf.5.txt300
-rw-r--r--doc/dlt_cdh.md88
-rw-r--r--doc/dlt_cdh.txt128
-rw-r--r--doc/dlt_extended_network_trace.md91
-rw-r--r--doc/dlt_extended_network_trace.txt99
-rw-r--r--doc/dlt_filetransfer.md235
-rw-r--r--doc/dlt_filetransfer.txt264
-rw-r--r--doc/dlt_for_developers.md210
-rw-r--r--doc/dlt_kpi.md97
-rw-r--r--doc/dlt_kpi.txt145
-rw-r--r--doc/dlt_multinode.txt80
-rw-r--r--doc/dlt_offline_logstorage.txt214
39 files changed, 1752 insertions, 4067 deletions
diff --git a/README.md b/README.md
index ca73b71..6e768a9 100644
--- a/README.md
+++ b/README.md
@@ -3,14 +3,16 @@
Build and Test status: ![build and test status](https://travis-ci.org/jardous/dlt-daemon.svg?branch=master)
## Overview
+
This component provides a log and trace interface, based on the
-standardised protocol specified in the AUTOSAR standard 4.0 DLT.
+standardised protocol specified in the AUTOSAR standard 4.0 DLT.
This software can be used by GENIVI components and other applications as logging framework.
-DLT basically consists of 3 components:
-- __DLT Library__: Enables DLT logging for DLT user applications and temporary storage of log messages if daemon isn't available.
-- __DLT Daemon__: Receiving log messages from DLT user applications and temporary storage of log messages if client isn't available. Transmit log messages to DLT Client and response to control messages.
-- __DLT Client__: Receiving and storage of log messages from DLT Daemon into one single trace file and sending control message
+DLT basically consists of 3 components:
+
+- **DLT Library**: Enables DLT logging for DLT user applications and temporary storage of log messages if daemon isn't available.
+- **DLT Daemon**: Receiving log messages from DLT user applications and temporary storage of log messages if client isn't available. Transmit log messages to DLT Client and response to control messages.
+- **DLT Client**: Receiving and storage of log messages from DLT Daemon into one single trace file and sending control message
![alt text](doc/images/dlt_overview.png "DLT Overview")
@@ -19,18 +21,18 @@ Furthermore, the repository contains several adaptors, console utilities as well
## Build and install
The following packages need to be installed in order to be able to build and install DLT daemon:
-```
+
- cmake
- zlib
- dbus
-```
On Ubuntu those dependencies can be installed with the following command:
-`sudo apt-get install cmake zlib1g-dev libdbus-glib-1-dev`
+
+> sudo apt-get install cmake zlib1g-dev libdbus-glib-1-dev
To build and install the DLT daemon, follow these steps:
-```
+```bash
mkdir build
cd build
cmake ..
@@ -42,8 +44,9 @@ optional: sudo ldconfig`
### Configuration
#### General Options
- Option | Value | Comment
- :--- | :--- | :---
+
+Option | Value | Comment
+:--- | :--- | :---
BUILD_SHARED_LIBS | ON | Set to OFF to build static libraries
DLT_IPC |"FIFO" | Set to either "UNIX_SOCKET" or "FIFO"
WITH_DLT_USE_IPv6 | ON | Set to ON for IPv6 support
@@ -53,8 +56,8 @@ WITH_CHECK_CONFIG_FILE | OFF | Set to ON to create a configure
CMAKE_INSTALL_PREFIX | /usr/local
CMAKE_BUILD_TYPE | RelWithDebInfo
-
#### Command Line Tool Options
+
Option | Value | Comment
:--- | :--- | :---
WITH_DLT_ADAPTOR | OFF | Set to ON to build src/adaptor binaries
@@ -65,6 +68,7 @@ WITH_DLT_LOGSTORAGE_CTRL_PROP | OFF | PROTOTYPE! Set to ON to build l
WITH_DLT_KPI | OFF | Set to ON to build src/kpi binaries
#### Linux OS Integration Options
+
Option | Value | Comment
:--- | :--- | :---
WITH_SYSTEMD | OFF | Set to ON to run CMakeLists.txt in systemd
@@ -73,12 +77,14 @@ WITH_SYSTEMD_JOURNAL | OFF | Set to ON to use the systemd jo
WITH_DLT_DBUS | OFF | Set to ON to build src/dbus binaries
#### Documentation Options
- Option | Value | Comment
+
+Option | Value | Comment
:--- | :--- | :---
WITH_DOC | OFF | Set to ON to build documentation target
WITH_MAN | OFF | Set to OFF to skip building of man pages
#### Test Options
+
Option | Value | Comment
:--- | :--- | :---
WITH_TESTSCRIPTS | OFF | Set to ON to run CMakeLists.txt in test scripts
@@ -88,23 +94,25 @@ WITH_DLT_UNIT_TESTS | OFF | Set to ON to build unit test b
WITH_GPROF | OFF | Set \-pg to compile flag
#### Experimental Features Options
+
Option | Value | Comment
:--- | :--- | :---
WITH_DLT_SHM_ENABLE | OFF | Set to OFF to use FIFO as IPC from user to daemon
WITH_DLT_CXX11_EXT | OFF | Set to ON to build C++11 extensions
WITH_DLT_COREDUMPHANDLER | OFF | EXPERIMENTAL! Set to ON to build src/core_dump_handler binaries. EXPERIMENTAL
-
In order to change these options, you can modify these values
with cmake, do the appropriate changes in CmakeList.txt or via
the commandline for cmake
-Change a value with: cmake -D<Variable>=<Value>, E.g.
-```
+Change a value with: cmake -D\<Variable\>=\<Value\>, E.g.
+
+```bash
cmake .. -DWITH_SYSTEMD=ON -DWITH_SYSTEMD_JOURNAL=ON -DCMAKE_INSTALL_PREFIX=/usr
```
## Documentation
+
Specific documentation can be found in the following files:
- [ReleaseNotes](ReleaseNotes.md)
@@ -112,19 +120,25 @@ Specific documentation can be found in the following files:
- [For Developers](doc/dlt_for_developers.md)
- [Logstorage](doc/dlt_offline_logstorage.md)
- [MultiNode](doc/dlt_multinode.md)
+- [Extended Network Trace](doc/dlt_extended_network_trace.md)
+- [DLT Filetransfer](doc/dlt_filetransfer.md)
+- [DLT KPI](doc/dlt_kpi.md)
+- [DLT Core Dump Handler](/doc/dlt_cdh.md)
All text based documentation will be replaced with by Markdown-based documentation for convinient access.
Old documentation (not maintained - will be removed in future releases):
+
- DLT User Manual: doc/dlt_user_manual.txt
- DLT Cheatsheet: doc/dlt_cheatsheet.txt
- DLT Design Specification: doc/dlt_design_specification.txt
- DLT Compilation of all documentation: doc/dlt_book.txt
### API Documentation
+
The API documentation is generated with _doxygen_.
-```
+```bash
mkdir build
cd build
cmake -DWITH_DOC=ON ..
@@ -132,24 +146,22 @@ make doc
```
### Manpages
-- dlt-daemon(1)
-- dlt.conf(5)
-- dlt-system(1)
-- dlt-system.conf(5)
-- dlt-convert(1)
-- dlt-sortbytimestamp(1)
-- dlt-receive(1)
-- dlt-logstorage-ctrl(1)
-- dlt-dbus (1) TBD
-- dlt-dbus.conf (5) TBD
-- dlt-cdh (1) TBD
-- dlt-kpi (1) TBD
-
-The man pages are generated with _asciidoc_.
+
+- [dlt-daemon(1)](doc/dlt-daemon.1.md)
+- [dlt.conf(5)](doc/dlt.conf.5.md)
+- [dlt-system(1)](doc/dlt-system.1.md)
+- [dlt-system.conf(5)](doc/dlt-system.conf.5.md)
+- [dlt-convert(1)](doc/dlt-convert.1.md)
+- [dlt-sortbytimestamp(1)](doc/dlt-sortbytimestamp.1.md)
+- [dlt-receive(1)](doc/dlt-receive.1.md)
+- [dlt-logstorage-ctrl(1)](doc/dlt-logstorage-ctrl.1.md)
+- [dlt-passive-node-ctrl(1)](doc/dlt-passive-node-ctrl.1.md)
+
+The man pages are generated with *pandoc*.
If the man pages are changed the following command must be executed.
-```
+```bash
mkdir build
cd build
cmake -DWITH_DOC=ON ..
@@ -162,7 +174,7 @@ The generated man pages overwrite the existing ones.
Start working, best practice is to commit smaller, compilable pieces during the work that makes it easier to handle later on.
-If you want to commit your changes, create a _Pull Request_ in Github.
+If you want to commit your changes, create a [Pull Request](https://github.com/genivi/dlt-daemon/pulls) in Github.
### Coding Rules
@@ -180,20 +192,21 @@ List of open issues can be found on [Github](https://github.com/GENIVI/dlt-daemo
- For Non linux platforms [eg: QNX] IPC supported is UNIX_SOCKET. For Linux Platforms both IPC FIFO and UNIX_SOCKET are supported
## Software/Hardware
+
Developed and tested with Ubuntu Linux 16 64-bit / Intel PC
## License
+
Full information on the license for this software is available in the "LICENSE" file.
Full information on the license for the cityhash code is available in "COPYING" file in src/core_dump_handler/cityhash_c.
-## Source Code
-- https://github.com/GENIVI/dlt-daemon
-
## Mailinglist
+
https://lists.genivi.org/mailman/listinfo/genivi-diagnostic-log-and-trace_lists.genivi.org
## Contact
-Christoph Lipka <clipka@de.adit-jv.com>
-Manikandan Chockalingam <Manikandan.Chockalingam@in.bosch.com>
+Christoph Lipka <clipka@de.adit-jv.com>,
+Manikandan Chockalingam <Manikandan.Chockalingam@in.bosch.com>
+![alt text](doc/images/genivilogo.png "GENIVI") \ No newline at end of file
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 263dbe0..93d57de 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -80,9 +80,30 @@ if(WITH_MAN)
MESSAGE(FATAL_ERROR "Could not find gzip for man page compression.")
endif(NOT GZIP_TOOL)
+ FIND_PROGRAM(PANDOC_TOOL
+ NAMES pandoc
+ PATHS /bin
+ /usr/bin
+ /usr/local/bin)
+
+
+ if(NOT GZIP_TOOL)
+ MESSAGE(FATAL_ERROR "Could not find pandoc for man page generation.")
+ endif(NOT GZIP_TOOL)
+
set(MAN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(MAN_BUILD_DIR ${CMAKE_BINARY_DIR}/doc)
+ set(MD_SRC
+ ${MAN_SRC_DIR}/dlt.conf.5.md
+ ${MAN_SRC_DIR}/dlt-system.conf.5.md
+ ${MAN_SRC_DIR}/dlt-convert.1.md
+ ${MAN_SRC_DIR}/dlt-sortbytimestamp.1.md
+ ${MAN_SRC_DIR}/dlt-daemon.1.md
+ ${MAN_SRC_DIR}/dlt-receive.1.md
+ ${MAN_SRC_DIR}/dlt-system.1.md
+ ${MAN_SRC_DIR}/dlt-logstorage-ctrl.1.md
+ ${MAN_SRC_DIR}/dlt-passive-node-ctrl.1.md)
set(MAN_SRC
${MAN_SRC_DIR}/dlt.conf.5
${MAN_SRC_DIR}/dlt-system.conf.5
@@ -114,11 +135,17 @@ if(WITH_MAN)
${MAN_BUILD_DIR}/dlt-logstorage-ctrl.1.gz
${MAN_BUILD_DIR}/dlt-passive-node-ctrl.1.gz)
- foreach(MAN ${MAN_SRC})
- execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${MAN} ${MAN_BUILD_DIR})
- endforeach(MAN)
+ add_custom_target(generate_man ALL
+ COMMAND ${PANDOC_TOOL} -s -t man ${MAN_SRC_DIR}/dlt.conf.5.md -o ${MAN_BUILD_DIR}/dlt.conf.5
+ COMMAND ${PANDOC_TOOL} -s -t man ${MAN_SRC_DIR}/dlt-system.conf.5.md -o ${MAN_BUILD_DIR}/dlt-system.conf.5
+ COMMAND ${PANDOC_TOOL} -s -t man ${MAN_SRC_DIR}/dlt-convert.1.md -o ${MAN_BUILD_DIR}/dlt-convert.1
+ COMMAND ${PANDOC_TOOL} -s -t man ${MAN_SRC_DIR}/dlt-sortbytimestamp.1.md -o ${MAN_BUILD_DIR}/dlt-sortbytimestamp.1
+ COMMAND ${PANDOC_TOOL} -s -t man ${MAN_SRC_DIR}/dlt-daemon.1.md -o ${MAN_BUILD_DIR}/dlt-daemon.1
+ COMMAND ${PANDOC_TOOL} -s -t man ${MAN_SRC_DIR}/dlt-receive.1.md -o ${MAN_BUILD_DIR}/dlt-receive.1
+ COMMAND ${PANDOC_TOOL} -s -t man ${MAN_SRC_DIR}/dlt-system.1.md -o ${MAN_BUILD_DIR}/dlt-system.1
+ COMMAND ${PANDOC_TOOL} -s -t man ${MAN_SRC_DIR}/dlt-logstorage-ctrl.1.md -o ${MAN_BUILD_DIR}/dlt-logstorage-ctrl.1
+ COMMAND ${PANDOC_TOOL} -s -t man ${MAN_SRC_DIR}/dlt-passive-node-ctrl.1.md -o ${MAN_BUILD_DIR}/dlt-passive-node-ctrl.1
- add_custom_target(compress_man ALL
COMMAND ${GZIP_TOOL} -c ${MAN_BUILD_DIR}/dlt.conf.5 > ${MAN_BUILD_DIR}/dlt.conf.5.gz
COMMAND ${GZIP_TOOL} -c ${MAN_BUILD_DIR}/dlt-system.conf.5 > ${MAN_BUILD_DIR}/dlt-system.conf.5.gz
COMMAND ${GZIP_TOOL} -c ${MAN_BUILD_DIR}/dlt-convert.1 > ${MAN_BUILD_DIR}/dlt-convert.1.gz
diff --git a/doc/dlt-convert.1 b/doc/dlt-convert.1
deleted file mode 100644
index 75f22a7..0000000
--- a/doc/dlt-convert.1
+++ /dev/null
@@ -1,139 +0,0 @@
-'\" t
-.\" Title: dlt-convert
-.\" Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\" Date: 02/23/2016
-.\" Manual: \ \&
-.\" Source: \ \&
-.\" Language: English
-.\"
-.TH "DLT\-CONVERT" "1" "02/23/2016" "\ \&" "\ \&"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.ie \n(.g .ds Aq \(aq
-.el .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "NAME"
-dlt-convert \- Convert DLT Logging files into ASCII
-.SH "SYNOPSIS"
-.sp
-\fBdlt\-convert\fR [\-h] [\-a] [\-x] [\-m] [\-s] [\-o filename] [\-v] [\-c] [\-f filterfile] [\-b number] [\-e number] [\-w] file1 [file2] [file3]
-.SH "DESCRIPTION"
-.sp
-Read DLT files, print DLT messages as ASCII and store the messages again\&. Use Ranges and Output file to cut DLT files\&. Use two files and Output file to join DLT files\&.
-.SH "OPTIONS"
-.PP
-\fB\-h\fR
-.RS 4
-Display a short help text\&.
-.RE
-.PP
-\fB\-a\fR
-.RS 4
-Print DLT file; payload as ASCII\&.
-.RE
-.PP
-\fB\-x\fR
-.RS 4
-Print DLT file; payload as hex\&.
-.RE
-.PP
-\fB\-m\fR
-.RS 4
-Print DLT file; payload as hex and ASCII\&.
-.RE
-.PP
-\fB\-s\fR
-.RS 4
-Print DLT file; only headers\&.
-.RE
-.PP
-\fB\-o\fR
-.RS 4
-Output messages in new DLT file\&.
-.RE
-.PP
-\fB\-v\fR
-.RS 4
-Verbose mode\&.
-.RE
-.PP
-\fB\-c\fR
-.RS 4
-Count number of messages\&.
-.RE
-.PP
-\fB\-f\fR
-.RS 4
-Enable filtering of messages\&.
-.RE
-.PP
-\fB\-b\fR
-.RS 4
-First messages to be handled\&.
-.RE
-.PP
-\fB\-e\fR
-.RS 4
-Last message to be handled\&.
-.RE
-.PP
-\fB\-w\fR
-.RS 4
-Follow dlt file while file is increasing\&.
-.RE
-.SH "EXAMPLES"
-.PP
-Start DLT daemon in background mode
-.RS 4
-\fBdlt\-daemon \-d\fR
-.RE
-.PP
-Start DLT daemon with own configuration
-.RS 4
-\fBdlt\-daemon \-c ~/my\-dlt\-configuration\&.cfg\fR
-.RE
-.PP
-Convert DLT file into ASCII
-.RS 4
-\fBdlt\-convert \-a mylog\&.dlt\fR
-.RE
-.PP
-Cut a specific range, e\&.g\&. from message 1 to message 3 from a file called log\&.dlt and store the result to a file called newlog\&.dlt
-.RS 4
-\fBdlt\-convert \-b 1 \-e 3 \-o newlog\&.dlt log\&.dlt\fR
-.RE
-.PP
-Paste two dlt files log1\&.dlt and log2\&.dlt to a new file called newlog\&.dlt
-.RS 4
-\fBdlt\-convert \-o newlog\&.dlt log1\&.dlt log2\&.dlt\fR
-.RE
-.SH "EXIT STATUS"
-.sp
-Non zero is returned in case of failure\&.
-.SH "AUTHOR"
-.sp
-Alexander Wenzel (alexander\&.aw\&.wenzel (at) bmw\&.de)
-.SH "COPYRIGHT"
-.sp
-Copyright \(co 2015 BMW AG\&. License MPL\-2\&.0: Mozilla Public License version 2\&.0 http://mozilla\&.org/MPL/2\&.0/\&.
-.SH "RESOURCES"
-.sp
-Main web site: http://projects\&.genivi\&.org/diagnostic\-log\-trace Mailinglist: https://lists\&.genivi\&.org/mailman/listinfo/genivi\-diagnostic\-log\-and\-trace
-.SH "SEE ALSO"
-.sp
-dlt\-daemon(1)
diff --git a/doc/dlt-convert.1.md b/doc/dlt-convert.1.md
new file mode 100644
index 0000000..c0df353
--- /dev/null
+++ b/doc/dlt-convert.1.md
@@ -0,0 +1,95 @@
+% DLT-CONVERT(1)
+
+# NAME
+
+**dlt-convert** - Convert DLT Logging files into ASCII
+
+# SYNOPSIS
+
+**dlt-convert** \[**-h**\] \[**-a**\] \[**-x**\] \[**-m**\] \[**-s**\] \[**-o** filename\] \[**-v**\] \[**-c**\] \[**-f** filterfile\] \[**-b** number\] \[**-e** number\] \[**-w**\] file1 \[file2\] \[file3\]
+
+# DESCRIPTION
+
+Read DLT files, print DLT messages as ASCII and store the messages again.
+Use Ranges and Output file to cut DLT files.
+Use two files and Output file to join DLT files.
+
+## OPTIONS
+
+-h
+
+: Display a short help text.
+
+-a
+
+: Print DLT file; payload as ASCII.
+
+-x
+
+: Print DLT file; payload as hex.
+
+-m
+
+: Print DLT file; payload as hex and ASCII.
+
+-s
+ Print DLT file; only headers.
+
+-o
+
+: Output messages in new DLT file.
+
+-v
+
+: Verbose mode.
+
+-c
+
+: Count number of messages.
+
+-f
+
+: Enable filtering of messages.
+
+-b
+
+: First messages to be handled.
+
+-e
+
+: Last message to be handled.
+
+-w
+
+: Follow dlt file while file is increasing.
+
+# EXAMPLES
+
+Convert DLT file into ASCII:
+ **dlt-convert -a mylog.dlt**
+
+Cut a specific range, e.g. from message 1 to message 3 from a file called log.dlt and store the result to a file called newlog.dlt:
+ **dlt-convert -b 1 -e 3 -o newlog.dlt log.dlt**
+
+Paste two dlt files log1.dlt and log2.dlt to a new file called newlog.dlt::
+ **dlt-convert -o newlog.dlt log1.dlt log2.dlt**
+
+# EXIT STATUS
+
+Non zero is returned in case of failure.
+
+# 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)**
diff --git a/doc/dlt-convert.1.txt b/doc/dlt-convert.1.txt
deleted file mode 100644
index 9a09f6c..0000000
--- a/doc/dlt-convert.1.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-DLT-CONVERT(1)
-=============
-:doctype: manpage
-
-NAME
-----
-dlt-convert - Convert DLT Logging files into ASCII
-
-SYNOPSIS
---------
-*dlt-convert* [-h] [-a] [-x] [-m] [-s] [-o filename] [-v] [-c] [-f filterfile] [-b number] [-e number] [-w] file1 [file2] [file3]
-
-DESCRIPTION
------------
-Read DLT files, print DLT messages as ASCII and store the messages again.
-Use Ranges and Output file to cut DLT files.
-Use two files and Output file to join DLT files.
-
-OPTIONS
--------
-*-h*::
- Display a short help text.
-
-*-a*::
- Print DLT file; payload as ASCII.
-
-*-x*::
- Print DLT file; payload as hex.
-
-*-m*::
- Print DLT file; payload as hex and ASCII.
-
-*-s*::
- Print DLT file; only headers.
-
-*-o*::
- Output messages in new DLT file.
-
-*-v*::
- Verbose mode.
-
-*-c*::
- Count number of messages.
-
-*-f*::
- Enable filtering of messages.
-
-*-b*::
- First messages to be handled.
-
-*-e*::
- Last message to be handled.
-
-*-w*::
- Follow dlt file while file is increasing.
-
-EXAMPLES
---------
-Start DLT daemon in background mode::
- *dlt-daemon -d*
-
-Start DLT daemon with own configuration::
- *dlt-daemon -c ~/my-dlt-configuration.cfg*
-
-Convert DLT file into ASCII::
- *dlt-convert -a mylog.dlt*
-
-Cut a specific range, e.g. from message 1 to message 3 from a file called log.dlt and store the result to a file called newlog.dlt::
- *dlt-convert -b 1 -e 3 -o newlog.dlt log.dlt*
-
-Paste two dlt files log1.dlt and log2.dlt to a new file called newlog.dlt::
- *dlt-convert -o newlog.dlt log1.dlt log2.dlt*
-
-EXIT STATUS
------------
-Non zero is returned in case of failure.
-
-AUTHOR
-------
-Alexander Wenzel (alexander.aw.wenzel (at) bmw.de)
-
-COPYRIGHT
----------
-Copyright (C) 2015 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 <http://mozilla.org/MPL/2.0/>.
-
-RESOURCES
----------
-Main web site: <http://projects.genivi.org/diagnostic-log-trace> +
-Mailinglist: <https://lists.genivi.org/mailman/listinfo/genivi-diagnostic-log-and-trace>
-
-SEE ALSO
---------
-dlt-daemon(1)
-
diff --git a/doc/dlt-daemon.1 b/doc/dlt-daemon.1
deleted file mode 100644
index 7fd4a34..0000000
--- a/doc/dlt-daemon.1
+++ /dev/null
@@ -1,99 +0,0 @@
-'\" t
-.\" Title: dlt-daemon
-.\" Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\" Date: 02/23/2016
-.\" Manual: \ \&
-.\" Source: \ \&
-.\" Language: English
-.\"
-.TH "DLT\-DAEMON" "1" "02/23/2016" "\ \&" "\ \&"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.ie \n(.g .ds Aq \(aq
-.el .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "NAME"
-dlt-daemon \- Diagnostic log and trace daemon
-.SH "SYNOPSIS"
-.sp
-\fBdlt\-daemon\fR [\-h] [\-d] [\-c filename] [\-t directory] [\-p port]
-.SH "DESCRIPTION"
-.sp
-The DLT daemon is the central place where logs and traces are gathered from different applications, stored temporarily or permanently and transferred to a DLT client application, which can run directly on the GENIVI system or more likely on a external tester device\&.
-.SH "OPTIONS"
-.PP
-\fB\-h\fR
-.RS 4
-Display a short help text\&.
-.RE
-.PP
-\fB\-d\fR
-.RS 4
-Daemonize, needed in System V init systems\&.
-.RE
-.PP
-\fB\-c\fR
-.RS 4
-Load an alternative configuration file\&. By default the configuration file /etc/dlt\&.conf is loaded\&.
-.RE
-.PP
-\fB\-t\fR
-.RS 4
-Directory for local fifo and user\-pipes (Default: /tmp) (Applications wanting to connect to a daemon using a custom directory need to be started with the environment variable DLT_PIPE_DIR set appropriately)
-.RE
-.PP
-\fB\-p\fR
-.RS 4
-Port to monitor for incoming requests (Default: 3490) (Applications wanting to connect to a daemon using a custom port need to be started with the environment variable DLT_DAEMON_TCP_PORT set appropriately)
-.RE
-.SH "EXAMPLES"
-.PP
-Start DLT daemon in background mode
-.RS 4
-\fBdlt\-daemon \-d\fR
-.RE
-.PP
-Start DLT daemon with own configuration
-.RS 4
-\fBdlt\-daemon \-c ~/my\-dlt\-configuration\&.cfg\fR
-.RE
-.PP
-Start DLT daemon with custom pipes directory
-.RS 4
-\fBdlt\-daemon \-t ~/dlt_pipes\fR
-.RE
-.PP
-Start DLT daemon listening on custom port 3500
-.RS 4
-\fBdlt\-daemon \-p 3500\fR
-.RE
-.SH "EXIT STATUS"
-.sp
-Non zero is returned in case of failure\&.
-.SH "AUTHOR"
-.sp
-Alexander Wenzel (alexander\&.aw\&.wenzel (at) bmw\&.de)
-.SH "COPYRIGHT"
-.sp
-Copyright \(co 2016 BMW AG\&. License MPL\-2\&.0: Mozilla Public License version 2\&.0 http://mozilla\&.org/MPL/2\&.0/\&.
-.SH "RESOURCES"
-.sp
-Main web site: http://projects\&.genivi\&.org/diagnostic\-log\-trace Mailinglist: https://lists\&.genivi\&.org/mailman/listinfo/genivi\-diagnostic\-log\-and\-trace
-.SH "SEE ALSO"
-.sp
-dlt\&.conf(5), dlt\-system(1)
diff --git a/doc/dlt-daemon.1.md b/doc/dlt-daemon.1.md
new file mode 100644
index 0000000..30fbbf1
--- /dev/null
+++ b/doc/dlt-daemon.1.md
@@ -0,0 +1,76 @@
+% DLT-DAEMON(1)
+
+# NAME
+
+**dlt-daemon** - Diagnostic Log and Trace daemon
+
+# SYNOPSIS
+
+**dlt-daemon** \[**-h**\] \[**-d**\] \[**-c** filename\] \[**-t** directory\] \[**-p** port\]
+
+# DESCRIPTION
+
+The DLT daemon is the central place where logs and traces are gathered
+from different applications, stored temporarily or permanently and
+transferred to a DLT client application, which can run directly on the
+GENIVI system or more likely on a external tester device.
+
+## OPTIONS
+
+-h
+
+: Display a short help text.
+
+-d
+
+: Daemonize, needed in System V init systems.
+
+-c
+
+: Load an alternative configuration file. By default the configuration file /etc/dlt.conf is loaded.
+
+-t
+
+: Directory for local fifo and user-pipes (Default: /tmp).
+ Applications wanting to connect to a daemon using a custom directory need to be started with the environment variable DLT_PIPE_DIR set appropriately.
+
+-p
+
+: Port to monitor for incoming requests (Default: 3490)
+ Applications wanting to connect to a daemon using a custom
+ port need to be started with the environment variable
+ DLT_DAEMON_TCP_PORT set appropriately.
+
+# EXAMPLES
+
+Start DLT daemon in background mode:
+ **dlt-daemon -d**
+
+Start DLT daemon with own configuration:
+ **dlt-daemon -c ~/my-dlt-configuration.cfg**
+
+Start DLT daemon with custom pipes directory:
+ **dlt-daemon -t ~/dlt_pipes**
+
+Start DLT daemon listening on custom port 3500:
+ **dlt-daemon -p 3500**
+
+# EXIT STATUS
+
+Non zero is returned in case of failure.
+
+# AUTHOR
+
+Alexander Wenzel (alexander.aw.wenzel (at) bmw (dot) de)
+
+# COPYRIGHT
+
+Copyright (C) 2016 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.conf(5)**, **dlt-system(1)**
diff --git a/doc/dlt-daemon.1.txt b/doc/dlt-daemon.1.txt
deleted file mode 100644
index 294f522..0000000
--- a/doc/dlt-daemon.1.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-DLT-DAEMON(1)
-=============
-:doctype: manpage
-
-NAME
-----
-dlt-daemon - Diagnostic log and trace daemon
-
-SYNOPSIS
---------
-*dlt-daemon* [-h] [-d] [-c filename] [-t directory] [-p port]
-
-DESCRIPTION
------------
-The DLT daemon is the central place where logs and traces are gathered
-from different applications, stored temporarily or permanently and
-transferred to a DLT client application, which can run directly on the
-GENIVI system or more likely on a external tester device.
-
-OPTIONS
--------
-*-h*::
- Display a short help text.
-
-*-d*::
- Daemonize, needed in System V init systems.
-
-*-c*::
- Load an alternative configuration file. By default the configuration
- file /etc/dlt.conf is loaded.
-
-*-t*::
- Directory for local fifo and user-pipes (Default: /tmp)
- (Applications wanting to connect to a daemon using a
- custom directory need to be started with the environment
- variable DLT_PIPE_DIR set appropriately)
-
-*-p*::
- Port to monitor for incoming requests (Default: 3490)
- (Applications wanting to connect to a daemon using a custom
- port need to be started with the environment variable
- DLT_DAEMON_TCP_PORT set appropriately)
-
-EXAMPLES
---------
-Start DLT daemon in background mode::
-*dlt-daemon -d*
-
-Start DLT daemon with own configuration::
-*dlt-daemon -c ~/my-dlt-configuration.cfg*
-
-Start DLT daemon with custom pipes directory::
-*dlt-daemon -t ~/dlt_pipes*
-
-Start DLT daemon listening on custom port 3500::
-*dlt-daemon -p 3500*
-
-EXIT STATUS
------------
-Non zero is returned in case of failure.
-
-AUTHOR
-------
-Alexander Wenzel (alexander.aw.wenzel (at) bmw.de)
-
-COPYRIGHT
----------
-Copyright (C) 2016 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 <http://mozilla.org/MPL/2.0/>.
-
-RESOURCES
----------
-Main web site: <http://projects.genivi.org/diagnostic-log-trace> +
-Mailinglist: <https://lists.genivi.org/mailman/listinfo/genivi-diagnostic-log-and-trace>
-
-SEE ALSO
---------
-dlt.conf(5), dlt-system(1)
-
diff --git a/doc/dlt-logstorage-ctrl.1 b/doc/dlt-logstorage-ctrl.1
deleted file mode 100644
index ac6554d..0000000
--- a/doc/dlt-logstorage-ctrl.1
+++ /dev/null
@@ -1,122 +0,0 @@
-'\" t
-.\" Title: dlt-logstorage-ctrl
-.\" Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\" Date: 02/23/2016
-.\" Manual: \ \&
-.\" Source: \ \&
-.\" Language: English
-.\"
-.TH "DLT\-LOGSTORAGE\-CTRL" "1" "02/23/2016" "\ \&" "\ \&"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.ie \n(.g .ds Aq \(aq
-.el .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "NAME"
-dlt-logstorage-ctrl \- Trigger DLT Daemon to start/stop using an offline logstorage device
-.SH "SYNOPSIS"
-.sp
-\fBdlt\-logstorage\-ctrl\fR [\-h] [\-c ctype] [\-p path] [\-e ecu] [\-p<prop>] [\-t timeout] [\-v]
-.SH "DESCRIPTION"
-.sp
-Send a trigger to DLT Daemon to connect/disconnect a certain offline logstorage device
-.SH "OPTIONS"
-.PP
-\fB\-h\fR
-.RS 4
-Display a short help text\&.
-.RE
-.PP
-\fB\-c\fR
-.RS 4
-Specify connection type: connect = 1, disconnect = 0\&.
-.RE
-.PP
-\fB\-d\fR
-.RS 4
-Run as daemon: prop = use proprietary handler\&.
-.RE
-.PP
-\fB\-p\fR
-.RS 4
-Mount point path\&.
-.RE
-.PP
-\fB\-e\fR
-.RS 4
-Specify the ECU ID\&. Default is: ECU1\&.
-.RE
-.PP
-\fB\-t\fR
-.RS 4
-Specify connection timeout\&. Default is: 10s\&.
-.RE
-.PP
-\fB\-v\fR
-.RS 4
-Print verbose output\&.
-.RE
-.SH "EXAMPLES"
-.sp
-Activate the offline logstorage device mounted on /mnt/dltlog\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-dlt\-logstorage\-ctrl \-c 1 \-p /mnt/dltlog\&.
-.fi
-.if n \{\
-.RE
-.\}
-.sp
-Deactivate the offline logstorage device mounted on /mnt/dltlog\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-dlt\-logstorage\-ctrl \-c 0 \-p /mnt/dltlog\&.
-.fi
-.if n \{\
-.RE
-.\}
-.sp
-Run logstorage control application as daemon listen to udev events\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-dlt\-logstorage\-ctrl -d\&.
-.fi
-.if n \{\
-.RE
-.\}
-.SH "EXIT STATUS"
-.sp
-Non zero is returned in case of failure\&.
-.SH "AUTHOR"
-.sp
-Christoph Lipka (clipka (at) jp\&.adit\-jv\&.com) Syed Hameed (shameed (at) jp\&.adit\-jv\&.com)
-.SH "RESOURCES"
-.sp
-Main web site: http://projects\&.genivi\&.org/diagnostic\-log\-trace Mailinglist: https://lists\&.genivi\&.org/mailman/listinfo/genivi\-diagnostic\-log\-and\-trace
-.SH "SEE ALSO"
-.sp
-dlt\-daemon(1)
diff --git a/doc/dlt-logstorage-ctrl.1.md b/doc/dlt-logstorage-ctrl.1.md
new file mode 100644
index 0000000..1e80fb8
--- /dev/null
+++ b/doc/dlt-logstorage-ctrl.1.md
@@ -0,0 +1,70 @@
+% DLT-LOGSTORAGE-CTRL(1)
+
+# NAME
+
+**dlt-logstorage-ctrl** - Trigger DLT Daemon to start/stop using an offline logstorage device
+
+# SYNOPSIS
+
+**dlt-logstorage-ctrl** \[**-h**\] \[**-c** ctype\] \[**-p** path\] \[**-e** ecu\] \[**-p\<prop\>**\] \[**-t** timeout\] \[**-v**\]
+
+# DESCRIPTION
+
+Send a trigger to DLT Daemon to connect/disconnect a certain offline logstorage device
+
+# OPTIONS
+
+-h
+
+: Display a short help text.
+
+-c
+
+: Specify connection type: connect = 1, disconnect = 0.
+
+-d
+
+: Run as daemon: prop = use proprietary handler
+
+-p
+
+: Mount point path.
+
+-e
+
+: Specify the ECU ID. Default is: ECU1.
+
+-t
+
+: Specify connection timeout. Default is: 10s.
+
+# EXAMPLES
+
+Activate the offline logstorage device mounted on /mnt/dltlog
+ **dlt-logstorage-ctrl -c 1 -p /mnt/dltlog**
+
+Deactivate the offline logstorage device mounted on /mnt/dltlog
+ **dlt-logstorage-ctrl -c 0 -p /mnt/dltlog**
+
+Run logstorage control application as daemon listen to udev events
+ **dlt-logstorage-ctrl -d**
+
+# EXIT STATUS
+
+Non zero is returned in case of failure.
+
+# AUTHOR
+
+Christoph Lipka (clipka (at) jp.adit-jv (dot) com), Syed Hameed (shameed (at) jp.adit-jv (dot) com)
+
+# COPYRIGHT
+
+Copyright (C) 2015 Advanced Driver Information Technology, Bosch and DENSO. 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)**
diff --git a/doc/dlt-logstorage-ctrl.1.txt b/doc/dlt-logstorage-ctrl.1.txt
deleted file mode 100644
index aa7c6c8..0000000
--- a/doc/dlt-logstorage-ctrl.1.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-DLT-LOGSTORAGE-CTRL(1)
-======================
-:doctype: manpage
-
-NAME
-----
-dlt-logstorage-ctrl - Trigger DLT Daemon to start/stop using an offline logstorage device
-
-SYNOPSIS
---------
-*dlt-logstorage-ctrl* [-h] [-c ctype] [-p path] [-e ecu] [-p<prop>] [-t timeout] [-v]
-
-DESCRIPTION
------------
-Send a trigger to DLT Daemon to connect/disconnect a certain offline logstorage device
-
-OPTIONS
--------
-*-h*::
- Display a short help text.
-
-*-c*::
- Specify connection type: connect = 1, disconnect = 0.
-
-*-d*::
- Run as daemon: prop = use proprietary handler
-
-*-p*::
- Mount point path.
-
-*-e*::
- Specify the ECU ID. Default is: ECU1.
-
-*-t*::
- Specify connection timeout. Default is: 10s.
-
-EXAMPLES
---------
-Activate the offline logstorage device mounted on /mnt/dltlog
-
-----
-dlt-logstorage-ctrl -c 1 -p /mnt/dltlog
-----
-
-Deactivate the offline logstorage device mounted on /mnt/dltlog
-
-----
-dlt-logstorage-ctrl -c 0 -p /mnt/dltlog
-----
-
-Run logstorage control application as daemon listen to udev events
-
-----
-dlt-logstorage-ctrl -d
-----
-
-EXIT STATUS
------------
-Non zero is returned in case of failure.
-
-AUTHOR
-------
-Christoph Lipka (clipka (at) jp.adit-jv.com) +
-Syed Hameed (shameed (at) jp.adit-jv.com)
-
-RESOURCES
----------
-Main web site: <https://at.projects.genivi.org/wiki/display/PROJ/Diagnostic+Log+and+Trace> +
-Mailinglist: <https://lists.genivi.org/mailman/listinfo/genivi-diagnostic-log-and-trace>
-
-SEE ALSO
---------
-dlt-daemon(1)
diff --git a/doc/dlt-passive-node-ctrl.1 b/doc/dlt-passive-node-ctrl.1
deleted file mode 100644
index 919182d..0000000
--- a/doc/dlt-passive-node-ctrl.1
+++ /dev/null
@@ -1,117 +0,0 @@
-'\" t
-.\" Title: dlt-passive-node-ctrl
-.\" Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\" Date: 10/19/2016
-.\" Manual: \ \&
-.\" Source: \ \&
-.\" Language: English
-.\"
-.TH "DLT\-PASSIVE\-NODE\-CTRL" "1" "10/19/2016" "\ \&" "\ \&"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.ie \n(.g .ds Aq \(aq
-.el .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "NAME"
-dlt-passive-node-ctrl \- Send a trigger to DLT daemon to (dis)connect a passive node or get current passive node status
-.SH "SYNOPSIS"
-.sp
-\fBdlt\-passive\-node\-ctrl\fR [\-h] [\-c ctype] [\-n ecu] [\-s] [\-t timeout] [\-v]
-.SH "DESCRIPTION"
-.sp
-Send a trigger to DLT daemon to (dis)connect a passive node or get current passive node status
-.SH "OPTIONS"
-.PP
-\fB\-h\fR
-.RS 4
-Display a short help text\&.
-.RE
-.PP
-\fB\-c\fR
-.RS 4
-Specify connection type: connect = 1, disconnect = 0\&.
-.RE
-.PP
-\fB\-n\fR
-.RS 4
-Passive node identifier. E.g. ECU2\&.
-.RE
-.PP
-\fB\-s\fR
-.RS 4
-Show passive nodes connection status\&.
-.RE
-.PP
-\fB\-t\fR
-.RS 4
-Specify connection timeout\&. Default is: 10s\&.
-.RE
-.PP
-\fB\-v\fR
-.RS 4
-Print verbose output\&.
-.RE
-.SH "EXAMPLES"
-.sp
-Get status about connected passives nodes\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-dlt\-passive\-node\-ctrl \-s\&.
-.fi
-.if n \{\
-.RE
-.\}
-.sp
-Connect to passive node ECU2\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-dlt\-passive\-node\-ctrl \-c 1 \-n ECU2\&.
-.fi
-.if n \{\
-.RE
-.\}
-.sp
-Disconnect to passive node ECU2\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-dlt\-passive\-node\-ctrl \-c 0 \-n ECU2\&.
-.fi
-.if n \{\
-.RE
-.\}
-.SH "EXIT STATUS"
-.sp
-Non zero is returned in case of failure\&.
-.SH "AUTHOR"
-.sp
-Christoph Lipka (clipka (at) jp\&.adit\-jv\&.com)l
-.SH "RESOURCES"
-.sp
-Main web site: http://projects\&.genivi\&.org/diagnostic\-log\-trace Mailinglist: https://lists\&.genivi\&.org/mailman/listinfo/genivi\-diagnostic\-log\-and\-trace
-.SH "SEE ALSO"
-.sp
-dlt\-daemon(1)
diff --git a/doc/dlt-passive-node-ctrl.1.md b/doc/dlt-passive-node-ctrl.1.md
new file mode 100644
index 0000000..a691c75
--- /dev/null
+++ b/doc/dlt-passive-node-ctrl.1.md
@@ -0,0 +1,70 @@
+% DLT-PASSIVE-NODE-CTRL(1)
+
+# NAME
+
+**dlt-passive-node-ctrl** - Send a trigger to DLT daemon to (dis)connect a passive node or get current passive node status
+
+# SYNOPSIS
+
+**dlt-passive-node-ctrl** \[**-h**\] \[**-c**\] \[**-n** ecu\] \[**-s**\] \[**-t** timeout\] \[-v\]
+
+# DESCRIPTION
+
+Send a trigger to DLT daemon to (dis)connect a passive node or get current passive node status
+
+## OPTIONS
+
+-h
+
+: Usage
+
+-c
+
+: Connection status (1 - connect, 0 - disconnect)
+
+-n
+
+: Passive Node identifier (e.g. ECU2)
+
+-s
+
+: Show passive node(s) connection status
+
+-t
+
+: Specify connection timeout (Default: 10s)
+
+-v
+
+: Set verbose flag (Default:0)
+
+# EXAMPLES
+
+Get status about connected passives nodes
+ **dlt-passive-node-ctrl -s**
+
+Connect to passive node ECU2
+ **dlt-passive-node-ctrl -c 1 -n ECU2**
+
+Disconnect to passive node ECU2
+ **dlt-passive-node-ctrl -c 0 -n ECU2**
+
+# EXIT STATUS
+
+Non zero is returned in case of failure.
+
+# AUTHOR
+
+Christoph Lipka (clipka (at) jp.adit-jv (dot) com), Syed Hameed (shameed (at) jp.adit-jv (dot) com)
+
+# COPYRIGHT
+
+Copyright (C) 2015 Advanced Driver Information Technology, Bosch and DENSO. 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)**
diff --git a/doc/dlt-passive-node-ctrl.1.txt b/doc/dlt-passive-node-ctrl.1.txt
deleted file mode 100644
index f60648d..0000000
--- a/doc/dlt-passive-node-ctrl.1.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-DLT-PASSIVE-NODE-CTRL(1)
-========================
-:doctype: manpage
-
-NAME
-----
-dlt-passive-node-ctrl - Send a trigger to DLT daemon to (dis)connect a passive node or get current passive node status
-
-SYNOPSIS
---------
-*dlt-passive-node-ctrl* [-h] [-c] [-n ecu] [-s] [-t timeout] [-v]
-
-DESCRIPTION
------------
-Send a trigger to DLT daemon to (dis)connect a passive node or get current passive node status
-
-OPTIONS
--------
-*-h*::
- Usage
-*-c*::
- Connection status (1 - connect, 0 - disconnect)
-*-n*::
- Passive Node identifier (e.g. ECU2)
-*-s*::
- Show passive node(s) connection status
-*-t*::
- Specify connection timeout (Default: 10s)
-*-v*::
- Set verbose flag (Default:0)
-
-EXAMPLES
---------
-Get status about connected passives nodes
-
-----
-dlt-passive-node-ctrl -s
-----
-
-Connect to passive node ECU2
-
-----
-dlt-passive-node-ctrl -c 1 -n ECU2
-----
-
-Disconnect to passive node ECU2
-
-----
-dlt-passive-node-ctrl -c 0 -n ECU2
-----
-
-EXIT STATUS
------------
-Non zero is returned in case of failure.
-
-AUTHOR
-------
-Christoph Lipka (clipka (at) jp.adit-jv.com)
-
-RESOURCES
----------
-Main web site: <https://at.projects.genivi.org/wiki/display/PROJ/Diagnostic+Log+and+Trace> +
-Mailinglist: <https://lists.genivi.org/mailman/listinfo/genivi-diagnostic-log-and-trace>
-
-SEE ALSO
---------
-dlt-daemon(1)
diff --git a/doc/dlt-receive.1 b/doc/dlt-receive.1
deleted file mode 100644
index a8c105e..0000000
--- a/doc/dlt-receive.1
+++ /dev/null
@@ -1,137 +0,0 @@
-'\" t
-.\" Title: dlt-receive
-.\" Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\" Date: 02/23/2016
-.\" Manual: \ \&
-.\" Source: \ \&
-.\" Language: English
-.\"
-.TH "DLT\-RECEIVE" "1" "02/23/2016" "\ \&" "\ \&"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.ie \n(.g .ds Aq \(aq
-.el .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "NAME"
-dlt-receive \- Console based client for DLT Logging
-.SH "SYNOPSIS"
-.sp
-\fBdlt\-receive\fR [\-h] [\-a] [\-x] [\-m] [\-s] [\-o filename] [\-c limit] [\-v] [\-y] [\-b baudrate] [\-e ecuid] [\-f filterfile] hostname/serial_device_name
-.SH "DESCRIPTION"
-.sp
-Receive DLT messages from DLT daemon and print or store the messages\&.
-.SH "OPTIONS"
-.PP
-\fB\-h\fR
-.RS 4
-Display a short help text\&.
-.RE
-.PP
-\fB\-a\fR
-.RS 4
-Print DLT file; payload as ASCII\&.
-.RE
-.PP
-\fB\-x\fR
-.RS 4
-Print DLT file; payload as hex\&.
-.RE
-.PP
-\fB\-m\fR
-.RS 4
-Print DLT file; payload as hex and ASCII\&.
-.RE
-.PP
-\fB\-s\fR
-.RS 4
-Print DLT file; only headers\&.
-.RE
-.PP
-\fB\-o\fR
-.RS 4
-Output messages in new DLT file\&.
-.RE
-.PP
-\fB\-c\fR
-.RS 4
-Set limit when storing messages in file\&. When limit is reached, a new file is opened\&. Use K,M,G as suffix to specify kilo\-, mega\-, giga\-bytes respectively, e\&.g\&. 1M for one megabyte (Default: unlimited)\&.
-.RE
-.PP
-\fB\-v\fR
-.RS 4
-Verbose mode\&.
-.RE
-.PP
-\fB\-y\fR
-.RS 4
-Serial device mode\&.
-.RE
-.PP
-\fB\-b\fR
-.RS 4
-Serial device baudrate (Default: 115200)\&.
-.RE
-.PP
-\fB\-e\fR
-.RS 4
-Set ECU ID (Default: RECV)\&.
-.RE
-.PP
-\fB\-f\fR
-.RS 4
-Enable filtering of messages\&.
-.RE
-.SH "EXAMPLES"
-.PP
-Print received message headers received from a dlt\-daemon running on localhost
-.RS 4
-dlt\-receive \-s localhost
-.RE
-.PP
-Print received message headers received from a serila interface
-.RS 4
-dlt\-receive \-s \-y /dev/ttySO
-.RE
-.PP
-Store received message headers from a dlt\-daemon to a log file called log\&.dlt and filter them for e\&.g\&. Application ID ABCD and Context ID EFGH (Write:ABCD EFGH as single line to a file called filter\&.txt)
-.RS 4
-dlt\-receive \-s \-o log\&.dlt \-f filter\&.txt localhost
-.RE
-.PP
-Store incoming messages in file(s) and restrict file sizes to 1 megabyte\&. If limit is reached, log\&.dlt will be renamed into log\&.0\&.dlt, log\&.1\&.dlt, \&... No files will be overwritten in this mode
-.RS 4
-dlt\-receive \-o log\&.dlt \-c 1M localhost
-.RE
-.SH "EXIT STATUS"
-.sp
-Non zero is returned in case of failure\&.
-.SH "NOTES"
-.sp
-Be aware that dlt\-receive will never delete any files\&. Instead, it creates a new file\&.
-.SH "AUTHOR"
-.sp
-Alexander Wenzel (alexander\&.aw\&.wenzel (at) bmw\&.de)
-.SH "COPYRIGHT"
-.sp
-Copyright \(co 2015 BMW AG\&. License MPL\-2\&.0: Mozilla Public License version 2\&.0 http://mozilla\&.org/MPL/2\&.0/\&.
-.SH "RESOURCES"
-.sp
-Main web site: http://projects\&.genivi\&.org/diagnostic\-log\-trace Mailinglist: https://lists\&.genivi\&.org/mailman/listinfo/genivi\-diagnostic\-log\-and\-trace
-.SH "SEE ALSO"
-.sp
-dlt\-daemon(1)
diff --git a/doc/dlt-receive.1.md b/doc/dlt-receive.1.md
new file mode 100644
index 0000000..38cd2be
--- /dev/null
+++ b/doc/dlt-receive.1.md
@@ -0,0 +1,101 @@
+% DLT-RECEIVE(1)
+
+# NAME
+
+**dlt-receive** - Console based client for DLT Logging
+
+# SYNOPSIS
+
+**dlt-receive** \[**-h**\] \[**-a**\] \[**-x**\] \[**-m**\] \[**-s**\] \[**-o** filename\] \[**-c** limit\] \[**-v**\] \[**-y**\] \[**-b** baudrate\] \[**-e** ecuid\] \[**-f** filterfile\] hostname/serial_device_name
+
+# DESCRIPTION
+
+Receive DLT messages from DLT daemon and print or store the messages.
+
+## OPTIONS
+
+-h
+
+: Display a short help text.
+
+-a
+
+: Print DLT file; payload as ASCII.
+
+-x
+
+: Print DLT file; payload as hex.
+
+-m
+
+: Print DLT file; payload as hex and ASCII.
+
+-s
+
+: Print DLT file; only headers.
+
+-o
+
+: Output messages in new DLT file.
+
+-c
+
+: Set limit when storing messages in file. When limit is reached, a new file is opened. Use K,M,G as suffix to specify kilo-, mega-, giga-bytes respectively, e.g. 1M for one megabyte (Default: unlimited).
+
+-v
+
+: Verbose mode.
+
+-y
+
+: Serial device mode.
+
+-b
+
+: Serial device baudrate (Default: 115200).
+
+-e
+
+: Set ECU ID (Default: RECV).
+
+-f
+
+: Enable filtering of messages.
+
+# EXAMPLES
+
+Print received message headers received from a dlt-daemon running on localhost::
+ **dlt-receive -s localhost**
+
+Print received message headers received from a serila interface::
+ **dlt-receive -s -y /dev/ttySO**
+
+Store received message headers from a dlt-daemon to a log file called log.dlt and filter them for e.g. Application ID ABCD and Context ID EFGH (Write:ABCD EFGH as single line to a file called filter.txt)::
+ **dlt-receive -s -o log.dlt -f filter.txt localhost**
+
+Store incoming messages in file(s) and restrict file sizes to 1 megabyte. If limit is reached, log.dlt will be renamed into log.0.dlt, log.1.dlt, ... No files will be overwritten in this mode::
+ **dlt-receive -o log.dlt -c 1M localhost**
+
+# EXIT STATUS
+
+Non zero is returned in case of failure.
+
+# NOTES
+
+Be aware that dlt-receive will never delete any files. Instead, it creates a new file.
+
+# 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)**
diff --git a/doc/dlt-receive.1.txt b/doc/dlt-receive.1.txt
deleted file mode 100644
index 30513aa..0000000
--- a/doc/dlt-receive.1.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-DLT-RECEIVE(1)
-==============
-:doctype: manpage
-
-NAME
-----
-dlt-receive - Console based client for DLT Logging
-
-SYNOPSIS
---------
-*dlt-receive* [-h] [-a] [-x] [-m] [-s] [-o filename] [-c limit] [-v] [-y] [-b baudrate] [-e ecuid] [-f filterfile] hostname/serial_device_name
-
-DESCRIPTION
------------
-Receive DLT messages from DLT daemon and print or store the messages.
-
-OPTIONS
--------
-*-h*::
- Display a short help text.
-
-*-a*::
- Print DLT file; payload as ASCII.
-
-*-x*::
-Print DLT file; payload as hex.
-
-*-m*::
-Print DLT file; payload as hex and ASCII.
-
-*-s*::
-Print DLT file; only headers.
-
-*-o*::
-Output messages in new DLT file.
-
-*-c*::
-Set limit when storing messages in file. When limit is reached, a new file is opened. Use K,M,G as suffix to specify kilo-, mega-, giga-bytes respectively, e.g. 1M for one megabyte (Default: unlimited).
-
-*-v*::
-Verbose mode.
-
-*-y*::
-Serial device mode.
-
-*-b*::
-Serial device baudrate (Default: 115200).
-
-*-e*::
-Set ECU ID (Default: RECV).
-
-*-f*::
- Enable filtering of messages.
-
-EXAMPLES
---------
-Print received message headers received from a dlt-daemon running on localhost::
- dlt-receive -s localhost
-
-Print received message headers received from a serila interface::
- dlt-receive -s -y /dev/ttySO
-
-Store received message headers from a dlt-daemon to a log file called log.dlt and filter them for e.g. Application ID ABCD and Context ID EFGH (Write:ABCD EFGH as single line to a file called filter.txt)::
- dlt-receive -s -o log.dlt -f filter.txt localhost
-
-Store incoming messages in file(s) and restrict file sizes to 1 megabyte. If limit is reached, log.dlt will be renamed into log.0.dlt, log.1.dlt, ... No files will be overwritten in this mode::
- dlt-receive -o log.dlt -c 1M localhost
-
-EXIT STATUS
------------
-Non zero is returned in case of failure.
-
-NOTES
------
-Be aware that dlt-receive will never delete any files. Instead, it creates a new file.
-
-AUTHOR
-------
-Alexander Wenzel (alexander.aw.wenzel (at) bmw.de)
-
-COPYRIGHT
----------
-Copyright (C) 2015 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 <http://mozilla.org/MPL/2.0/>.
-
-RESOURCES
----------
-Main web site: <http://projects.genivi.org/diagnostic-log-trace> +
-Mailinglist: <https://lists.genivi.org/mailman/listinfo/genivi-diagnostic-log-and-trace>
-
-SEE ALSO
---------
-dlt-daemon(1)
diff --git a/doc/dlt-sortbytimestamp.1 b/doc/dlt-sortbytimestamp.1
deleted file mode 100644
index 7f0915f..0000000
--- a/doc/dlt-sortbytimestamp.1
+++ /dev/null
@@ -1,103 +0,0 @@
-'\" t
-.\" Title: dlt-sortbytimestamp
-.\" Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 07/17/2018
-.\" Manual: \ \&
-.\" Source: \ \&
-.\" Language: English
-.\"
-.TH "DLT\-SORTBYTIMESTAMP" "1" "07/17/2018" "\ \&" "\ \&"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.ie \n(.g .ds Aq \(aq
-.el .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "NAME"
-dlt-sortbytimestamp \- Re\-order DLT Logging files according to message creation time
-.SH "SYNOPSIS"
-.sp
-\fBdlt\-sortbytimestamp\fR [\-h] [\-v] [\-c] [\-f filterfile] [\-b number] [\-e number] dltfile_in dltfile_out
-.SH "DESCRIPTION"
-.sp
-By default messages in DLT files are ordered according to the time the logger received them\&. This can unhelpful when tracing a sequence of events on a busy multi\-threaded/multi\-core system, because thread pre\-emption combined with multiple processes attempting to log messages simultaneously means that the order in which the messages are received may vary significantly from the order in which they were created\&.
-.sp
-\fBdlt\-sortbytimestamp\fR re\-orders a DLT input file\(cqs messages according their creation timestamp, and writes them to an output DLT file\&.
-.SH "IMPORTANT NOTE"
-.sp
-Message timestamps are recorded relative to boot time\&. DLT files can contain messages from more than one reboot cycle\&. Because timestamping is reset to zero at each boot, simply running \fBdlt\-sortbytimestamp\fR against a multi\-boot\-cycle DLT input file will produce a tangled mess\&.
-.sp
-Use the \fB\-b\fR and/or \fB\-e\fR options to specify a range of messages within a single reboot cycle and all will be well\&.
-.sp
-Hint: use \fBdlt\-viewer\fR to ascertain the endpoints of the range in question\&.
-.SH "OPTIONS"
-.PP
-\fB\-h\fR
-.RS 4
-Display a short help text\&.
-.RE
-.PP
-\fB\-v\fR
-.RS 4
-Verbose mode\&. Repeat to give more information\&.
-.RE
-.PP
-\fB\-c\fR
-.RS 4
-Count number of messages\&.
-.RE
-.PP
-\fB\-f\fR
-.RS 4
-Enable filtering of messages\&. Incompatible with range options\&.
-.RE
-.PP
-\fB\-b\fR
-.RS 4
-First message to be handled\&. Zero based index\&.
-.RE
-.PP
-\fB\-e\fR
-.RS 4
-Last message to be handled\&. Zero based index\&.
-.RE
-.SH "EXAMPLES"
-.PP
-Sort an entire file by message timestamp
-.RS 4
-\fBdlt\-sortbytimestamp input\&.dlt output\&.dlt\fR
-.RE
-.PP
-Sort a specific range, e\&.g\&. from message 1,000,000 to message 1,500,000 from a file called input\&.dlt and store the result in a file called output\&.dlt
-.RS 4
-\fBdlt\-sortbytimestamp \-b 1000000 \-e 1500000 input\&.dlt output\&.dlt\fR
-.RE
-.SH "EXIT STATUS"
-.sp
-Non zero is returned in case of failure\&.
-.SH "AUTHOR"
-.sp
-Jonathan Sambrook (jonathan\&.sambrook (at) codethink\&.co\&.uk) Alexander Wenzel (alexander\&.aw\&.wenzel (at) bmw\&.de)
-.SH "COPYRIGHT"
-.sp
-Copyright \(co 2018 Codethink Ltd\&. Copyright \(co 2015 BMW AG\&. License MPL\-2\&.0: Mozilla Public License version 2\&.0 http://mozilla\&.org/MPL/2\&.0/\&.
-.SH "RESOURCES"
-.sp
-Main web site: http://projects\&.genivi\&.org/diagnostic\-log\-trace Mailinglist: https://lists\&.genivi\&.org/mailman/listinfo/genivi\-diagnostic\-log\-and\-trace
-.SH "SEE ALSO"
-.sp
-dlt\-convert(1) dlt\-daemon(1)
diff --git a/doc/dlt-sortbytimestamp.1.txt b/doc/dlt-sortbytimestamp.1.md
index cb92051..9f66320 100644
--- a/doc/dlt-sortbytimestamp.1.txt
+++ b/doc/dlt-sortbytimestamp.1.md
@@ -1,81 +1,80 @@
-DLT-SORTBYTIMESTAMP(1)
-======================
-:doctype: manpage
+% DLT-SORTBYTIMESTAMP(1)
-NAME
-----
-dlt-sortbytimestamp - Re-order DLT Logging files according to message creation time
+# NAME
-SYNOPSIS
---------
-*dlt-sortbytimestamp* [-h] [-v] [-c] [-f filterfile] [-b number] [-e number] dltfile_in dltfile_out
+**dlt-sortbytimestamp** - Re-order DLT Logging files according to message creation time
+
+# SYNOPSIS
+
+**dlt-sortbytimestamp** \[**-h**\] \[**-v**\] \[**-c**\] \[**-f** filterfile\] \[**-b** number\] \[**-e** number\] dltfile_in dltfile_out
+
+# DESCRIPTION
-DESCRIPTION
------------
By default messages in DLT files are ordered according to the time the logger received them. This can unhelpful when tracing a sequence of events on a busy multi-threaded/multi-core system, because thread pre-emption combined with multiple processes attempting to log messages simultaneously means that the order in which the messages are received may vary significantly from the order in which they were created.
*dlt-sortbytimestamp* re-orders a DLT input file's messages according their creation timestamp, and writes them to an output DLT file.
-IMPORTANT NOTE
---------------
+# IMPORTANT NOTE
+
Message timestamps are recorded relative to boot time. DLT files can contain messages from more than one reboot cycle. Because timestamping is reset to zero at each boot, simply running *dlt-sortbytimestamp* against a multi-boot-cycle DLT input file will produce a tangled mess.
Use the *-b* and/or *-e* options to specify a range of messages within a single reboot cycle and all will be well.
Hint: use *dlt-viewer* to ascertain the endpoints of the range in question.
-OPTIONS
--------
-*-h*::
- Display a short help text.
+# OPTIONS
+
+-h
+
+: Display a short help text.
+
+-v
-*-v*::
- Verbose mode. Repeat to give more information.
+: Verbose mode. Repeat to give more information.
-*-c*::
- Count number of messages.
+-c
-*-f*::
- Enable filtering of messages. Incompatible with range options.
+: Count number of messages.
-*-b*::
- First message to be handled. Zero based index.
+-f
-*-e*::
- Last message to be handled. Zero based index.
+: Enable filtering of messages. Incompatible with range options.
-EXAMPLES
---------
+-b
-Sort an entire file by message timestamp::
- *dlt-sortbytimestamp input.dlt output.dlt*
+: First message to be handled. Zero based index.
-Sort a specific range, e.g. from message 1,000,000 to message 1,500,000 from a file called input.dlt and store the result in a file called output.dlt::
- *dlt-sortbytimestamp -b 1000000 -e 1500000 input.dlt output.dlt*
+-e
+: Last message to be handled. Zero based index.
+
+# EXAMPLES
+
+Sort an entire file by message timestamp:
+ **dlt-sortbytimestamp input.dlt output.dlt**
+
+Sort a specific range, e.g. from message 1,000,000 to message 1,500,000 from a file called input.dlt and store the result in a file called output.dlt:
+ **dlt-sortbytimestamp -b 1000000 -e 1500000 input.dlt output.dlt**
+
+# EXIT STATUS
-EXIT STATUS
------------
Non zero is returned in case of failure.
-AUTHOR
-------
-Jonathan Sambrook (jonathan.sambrook (at) codethink.co.uk)
-Alexander Wenzel (alexander.aw.wenzel (at) bmw.de)
+# AUTHOR
+
+Jonathan Sambrook (jonathan.sambrook (at) codethink (dot) co (dot) uk)
+Alexander Wenzel (alexander.aw.wenzel (at) bmw (dot) de)
+
+# COPYRIGHT
-COPYRIGHT
----------
Copyright (C) 2018 Codethink Ltd.
Copyright (C) 2015 BMW AG.
License MPL-2.0: Mozilla Public License version 2.0 <http://mozilla.org/MPL/2.0/>.
-RESOURCES
----------
-Main web site: <http://projects.genivi.org/diagnostic-log-trace> +
-Mailinglist: <https://lists.genivi.org/mailman/listinfo/genivi-diagnostic-log-and-trace>
+# BUGS
+
+See Github issue: <https://github.com/GENIVI/dlt-daemon/issues>
-SEE ALSO
---------
-dlt-convert(1)
-dlt-daemon(1)
+# SEE ALSO
+**dlt-daemon(1)**, **dlt-convert(1)**
diff --git a/doc/dlt-system.1 b/doc/dlt-system.1
deleted file mode 100644
index 1ee692d..0000000
--- a/doc/dlt-system.1
+++ /dev/null
@@ -1,76 +0,0 @@
-'\" t
-.\" Title: dlt-system
-.\" Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\" Date: 02/23/2016
-.\" Manual: \ \&
-.\" Source: \ \&
-.\" Language: English
-.\"
-.TH "DLT\-SYSTEM" "1" "02/23/2016" "\ \&" "\ \&"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.ie \n(.g .ds Aq \(aq
-.el .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "NAME"
-dlt-system \- DLT system logging process
-.SH "SYNOPSIS"
-.sp
-\fBdlt\-system\fR [\-h] [\-d] [\-c filename]
-.SH "DESCRIPTION"
-.sp
-The DLT system logging process is the central application, which logs system information from the platform\&. It provides the features filetransfer, syslog adapater, logging of any kind of files and procfilesystem logger\&. The individual features can be enabled and disabled in the configuration file\&.
-.sp
-dlt\-system loads by default the configuration file /etc/dlt\-system\&.conf\&. See dlt\-system\&.conf(1)\&.
-.SH "OPTIONS"
-.PP
-\fB\-h\fR
-.RS 4
-Display a short help text\&.
-.RE
-.PP
-\fB\-d\fR
-.RS 4
-Daemonize, needed in System V init systems\&.
-.RE
-.PP
-\fB\-c\fR
-.RS 4
-Load an alternative configuration file\&. By default the configuration file /etc/dlt\&.conf is loaded\&.
-.RE
-.SH "EXAMPLES"
-.PP
-Start DLT system with custom configuration
-.RS 4
-\fBdlt\-system \-c ~/my\-configuration\&.cfg\fR
-.RE
-.SH "EXIT STATUS"
-.sp
-Non zero is returned in case of failure\&.
-.SH "AUTHOR"
-.sp
-Alexander Wenzel (alexander\&.aw\&.wenzel (at) bmw\&.de)
-.SH "COPYRIGHT"
-.sp
-Copyright \(co 2015 BMW AG\&. License MPL\-2\&.0: Mozilla Public License version 2\&.0 http://mozilla\&.org/MPL/2\&.0/\&.
-.SH "RESOURCES"
-.sp
-Main web site: http://projects\&.genivi\&.org/diagnostic\-log\-trace Mailinglist: https://lists\&.genivi\&.org/mailman/listinfo/genivi\-diagnostic\-log\-and\-trace
-.SH "SEE ALSO"
-.sp
-dlt\-system\&.conf(5), dlt\-daemon(1)
diff --git a/doc/dlt-system.1.md b/doc/dlt-system.1.md
new file mode 100644
index 0000000..78e8af3
--- /dev/null
+++ b/doc/dlt-system.1.md
@@ -0,0 +1,57 @@
+% DLT-SYSTEM(1)
+
+# NAME
+
+**dlt-system** - DLT system logging process
+
+# SYNOPSIS
+
+**dlt-system** \[**-h**\] \[**-d**\] \[**-c** filename\]
+
+#DESCRIPTION
+
+The DLT system logging process is the central application, which logs system information from the platform. It provides the features
+filetransfer, syslog adapater, logging of any kind of files and
+procfilesystem logger. The individual features can be enabled and
+disabled in the configuration file.
+
+dlt-system loads by default the configuration file /etc/dlt-system.conf.
+
+## OPTIONS
+
+-h
+
+: Display a short help text.
+
+-d
+
+: Daemonize, needed in System V init systems.
+
+-c
+
+: Load an alternative configuration file. By default the configuration file /etc/dlt.conf is loaded.
+
+# EXAMPLES
+
+Start DLT system with custom configuration:
+ **dlt-system -c ~/my-configuration.cfg**
+
+# EXIT STATUS
+
+Non zero is returned in case of failure.
+
+# 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-system.conf(5)**, **dlt-daemon(1)**
diff --git a/doc/dlt-system.1.txt b/doc/dlt-system.1.txt
deleted file mode 100644
index d68d696..0000000
--- a/doc/dlt-system.1.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-DLT-SYSTEM(1)
-==============
-:doctype: manpage
-
-NAME
-----
-dlt-system - DLT system logging process
-
-SYNOPSIS
---------
-*dlt-system* [-h] [-d] [-c filename]
-
-DESCRIPTION
------------
-The DLT system logging process is the central application, which logs
-system information from the platform. It provides the features
-filetransfer, syslog adapater, logging of any kind of files and
-procfilesystem logger. The individual features can be enabled and
-disabled in the configuration file.
-
-dlt-system loads by default the configuration file /etc/dlt-system.conf.
-See dlt-system.conf(1).
-
-OPTIONS
--------
-*-h*::
- Display a short help text.
-
-*-d*::
- Daemonize, needed in System V init systems.
-
-*-c*::
- Load an alternative configuration file. By default the configuration
- file /etc/dlt.conf is loaded.
-
-EXAMPLES
---------
-Start DLT system with custom configuration::
-*dlt-system -c ~/my-configuration.cfg*
-
-EXIT STATUS
------------
-Non zero is returned in case of failure.
-
-AUTHOR
-------
-Alexander Wenzel (alexander.aw.wenzel (at) bmw.de)
-
-COPYRIGHT
----------
-Copyright (C) 2015 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 <http://mozilla.org/MPL/2.0/>.
-
-RESOURCES
----------
-Main web site: <http://projects.genivi.org/diagnostic-log-trace> +
-Mailinglist: <https://lists.genivi.org/mailman/listinfo/genivi-diagnostic-log-and-trace>
-
-SEE ALSO
---------
-dlt-system.conf(5), dlt-daemon(1)
-
diff --git a/doc/dlt-system.conf.5 b/doc/dlt-system.conf.5
deleted file mode 100644
index 500c5ef..0000000
--- a/doc/dlt-system.conf.5
+++ /dev/null
@@ -1,526 +0,0 @@
-'\" t
-.\" Title: dlt-system.conf
-.\" Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\" Date: 02/23/2016
-.\" Manual: \ \&
-.\" Source: \ \&
-.\" Language: English
-.\"
-.TH "DLT\-SYSTEM\&.CONF" "5" "02/23/2016" "\ \&" "\ \&"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.ie \n(.g .ds Aq \(aq
-.el .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "NAME"
-dlt-system.conf \- DLT system process configuration file
-.SH "DESCRIPTION"
-.sp
-The DLT system logging process is the central application, which logs system information from the platform\&. It provides the features filetransfer, syslog adapater, logging of any kind of files and procfilesystem logger\&. The individual features can be enabled and disabled in the configuration file\&.
-.sp
-The configuration file dlt\-system\&.conf allows to configure the different runtime behaviour of dlt\-system\&. The configuration file is loaded during startup of dlt\-system\&.
-.sp
-dlt\-system loads by default the configuration file /etc/dlt\-system\&.conf\&. An alternative configuration file can be loaded with the option \-c\&.
-.SH "GENERAL OPTIONS"
-.PP
-\fBApplicationId\fR
-.RS 4
-The application Id used for the dlt\-system process\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: SYS
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.SH "SHELL OPTIONS"
-.PP
-\fBShellEnable\fR
-.RS 4
-Enable the Shell for command line injections\&.+ Be careful when you enable this feature\&. The user can send any kind of shell commands\&. The commands are executed with the rights of the dlt\-system process\&. Dlt\-system is started by default as user genivi\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.SH "SYSLOG ADAPTER OPTIONS"
-.PP
-\fBSyslogEnable\fR
-.RS 4
-If this option is set to 1, the syslog adapter feature is enabled\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBSyslogContextId\fR
-.RS 4
-This value defines context id of the syslog adapter\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: SYSL
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBSyslogPort\fR
-.RS 4
-This value defines the UDP port opened for receiving log messages from syslog\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 47111
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.SH "SYSTEMD JOURNAL ADAPTER OPTIONS"
-.PP
-\fBJournalEnable\fR
-.RS 4
-Enable the Systemd Journal Adapter\&.
-
-This feature is only available, when dlt is compiled with the option "WITH_SYSTEMD_JOURNAL"\&.
-
-Dlt\-system is started by default as user genivi, see dlt\-system\&.service file\&. The user genivi must be added to one of the groups
-\fIadm\fR,
-\fIwheel\fR
-or
-\fIsystemd\-journal\fR
-to have access to all journal entries\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBJournalContextId\fR
-.RS 4
-The Context Id of the journal adapter\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: JOUR
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBJournalCurrentBoot\fR
-.RS 4
-Show only log entries of current boot and follow\&.
-
-If JournalCurrentBoot and JournalFollow are not set all persistent journal entries will be logged
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 1
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBJournalFollow\fR
-.RS 4
-Show only the last 10 entries and follow\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBJournalMapLogLevels\fR
-.RS 4
-Map journal log levels to DLT log levels\&.
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-0 Emergency DLT_LOG_FATAL
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-1 Alert DLT_LOG_FATAL
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-2 Critical DLT_LOG_FATAL
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-3 Error DLT_LOG_ERROR
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-4 Warning DLT_LOG_WARN
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-5 Notice DLT_LOG_INFO
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-6 Informational DLT_LOG_INFO
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-7 Debug DLT_LOG_DEBUG
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 1
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.RE
-.SH "FILETRANSFER OPTIONS"
-.PP
-\fBFiletransferEnable\fR
-.RS 4
-Enable the Filetransfer feature\&.
-
-0 = disabled, 1 = enabled
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBFiletransferContextId\fR
-.RS 4
-The Context Id of the filetransfer\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: FILE
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBFiletransferTimeStartup\fR
-.RS 4
-Time in seconds after startup of dlt\-system when first file is transfered\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBFiletransferTimeDelay\fR
-.RS 4
-Time in seconds to wait between deletion of transferred file and start of next file transfer\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 10
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBFiletransferTimeoutBetweenLogs\fR
-.RS 4
-Time in seconds to wait between two file transfer logs of a single file to DLT\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 10
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBFiletransferDirectory\fR
-.RS 4
-You can define multiple file transfer directories\&. Define the directory to watch, whether to compress the file with zlib and the zlib compression level\&. For parsing purposes, FiletransferCompressionLevel must be the last one of three values\&.
-.RE
-.PP
-\fBFiletransferCompression\fR
-.RS 4
-See FiletransferDirectory option for explanation\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBFiletransferCompressionLevel\fR
-.RS 4
-See FiletransferDirectory option for explanation\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 5
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.SH "LOG FILES OPTIONS"
-.PP
-\fBLogFileEnable\fR
-.RS 4
-If this option is set to 1, the log files feature is enabled\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBLogFileFilename\fR
-.RS 4
-This value sets the full filename path to the file, which should be logged\&.
-.RE
-.PP
-\fBLogFileMode\fR
-.RS 4
-This value defines in which operation mode the file is logged\&. In mode 1 the file is only logged once when dlt\-system is started\&. In mode 2 the file is logged regularly every time LogFileTimeDelay timer elapses\&.
-
-0 = off, 1 = startup only, 2 = regular
-.RE
-.PP
-\fBLogFileTimeDelay\fR
-.RS 4
-This value is used in mode 3 and defines the number of seconds, after which the defined file is logged\&.
-.RE
-.PP
-\fBLogFileContextId\fR
-.RS 4
-This value defines the context id, which is used for logging the file\&.
-.RE
-.SH "LOG PROCESSES OPTIONS"
-.PP
-\fBLogProcessesEnable\fR
-.RS 4
-Enable the logging of processes\&.
-
-0 = disabled, 1 = enabled
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBLogProcessesContextId\fR
-.RS 4
-This value defines the context id, which is used for logging processes files\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: PROC
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBLogProcessName\fR
-.RS 4
-This value defines the name of the process to be logged, as used in the file stat of each process\&. If the value is defined as *, all processes are logged\&.
-.RE
-.PP
-\fBLogProcessFilename\fR
-.RS 4
-This value sets the relative filename path to the file, which should be logged\&. The path is relative to the procfilesystem folder of the process\&.
-.RE
-.PP
-\fBLogProcessMode\fR
-.RS 4
-This value the defines in which operation mode this process file is logged\&. In mode 1 the file is only logged once when dlt\-system is started\&. In mode 2 the file is logged regularly every time LogFileTimeDelay timer elapses\&.
-
-0 = off, 1 = startup only, 2 = regular\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBLogProcessTimeDelay\fR
-.RS 4
-This value is used in mode 3 and defines the number of seconds, after which the defined procfilesystem file is logged\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.SH "AUTHOR"
-.sp
-Alexander Wenzel (alexander\&.aw\&.wenzel (at) bmw\&.de)
-.SH "RESOURCES"
-.sp
-Main web site: http://projects\&.genivi\&.org/diagnostic\-log\-trace Mailinglist: https://lists\&.genivi\&.org/mailman/listinfo/genivi\-diagnostic\-log\-and\-trace
-.SH "SEE ALSO"
-.sp
-dlt\-system(1) dlt\-daemon(1)
diff --git a/doc/dlt-system.conf.5.md b/doc/dlt-system.conf.5.md
new file mode 100644
index 0000000..31f4929
--- /dev/null
+++ b/doc/dlt-system.conf.5.md
@@ -0,0 +1,217 @@
+% DLT-SYSTEM.CONF(5)
+
+# NAME
+
+**dlt-system.conf** - DLT system process configuration file
+
+# DESCRIPTION
+
+The DLT system logging process is the central application, which logs system information from the platform. It provides the features
+filetransfer, syslog adapater, logging of any kind of files and
+procfilesystem logger. The individual features can be enabled and
+disabled in the configuration file.
+
+The configuration file dlt-system.conf allows to configure the different runtime behaviour of dlt-system. The configuration file is loaded during startup of dlt-system.
+
+dlt-system loads by default the configuration file /etc/dlt-system.conf.
+An alternative configuration file can be loaded with the option -c.
+
+# GENERAL OPTIONS
+
+## ApplicationId
+
+The application Id used for the dlt-system process.
+
+ Default: SYS
+
+# SHELL OPTIONS
+
+## ShellEnable
+
+Enable the Shell for command line injections. Be careful when you enable this feature. The user can send any kind of shell commands. The commands are executed with the rights of the dlt-system process. Dlt-system is started by default as user genivi.
+
+ Default: 0
+
+# SYSLOG ADAPTER OPTIONS
+
+## SyslogEnable
+
+If this option is set to 1, the syslog adapter feature is enabled.
+
+ Default: 0
+
+## SyslogContextId
+
+This value defines context id of the syslog adapter.
+
+ Default: SYSL
+
+## SyslogPort
+
+This value defines the UDP port opened for receiving log messages from syslog.
+
+ Default: 47111
+
+# SYSTEMD JOURNAL ADAPTER OPTIONS
+
+## JournalEnable
+
+Enable the Systemd Journal Adapter. This feature is only available, when dlt is compiled with the option "WITH_SYSTEMD_JOURNAL". Dlt-system is started by default as user genivi, see dlt-system.service file. The user genivi must be added to one of the groups 'adm', 'wheel' or 'systemd-journal' to have access to all journal entries.
+
+ Default: 0
+
+## JournalContextId
+
+The Context Id of the journal adapter.
+
+ Default: JOUR
+
+## JournalCurrentBoot
+
+Show only log entries of current boot and follow. If JournalCurrentBoot and JournalFollow are not set all persistent journal entries will be logged.
+
+ Default: 1
+
+## JournalFollow
+
+Show only the last 10 entries and follow.
+
+ Default: 0
+
+## JournalMapLogLevels
+
+Map journal log levels to DLT log levels.
+
+ - 0 Emergency DLT_LOG_FATAL
+ - 1 Alert DLT_LOG_FATAL
+ - 2 Critical DLT_LOG_FATAL
+ - 3 Error DLT_LOG_ERROR
+ - 4 Warning DLT_LOG_WARN
+ - 5 Notice DLT_LOG_INFO
+ - 6 Informational DLT_LOG_INFO
+ - 7 Debug DLT_LOG_DEBUG
+
+ Default: 1
+
+
+# FILETRANSFER OPTIONS
+
+## FiletransferEnable
+
+Enable the Filetransfer feature. 0 = disabled, 1 = enabled
+
+ Default: 0
+
+## FiletransferContextId
+
+The Context Id of the filetransfer.
+
+ Default: FILE
+
+## FiletransferTimeStartup
+
+Time in seconds after startup of dlt-system when first file is transfered.
+
+ Default: 0
+
+## FiletransferTimeDelay
+
+Time in seconds to wait between deletion of transferred file and start of next file transfer.
+
+ Default: 10
+
+## FiletransferTimeoutBetweenLogs
+
+Time in seconds to wait between two file transfer logs of a single file to DLT.
+
+ Default: 10
+
+## FiletransferDirectory
+
+You can define multiple file transfer directories. Define the directory to watch, whether to compress the file with zlib and the zlib compression level. For parsing purposes, FiletransferCompressionLevel must be the last one of three values.
+
+## FiletransferCompression
+
+See FiletransferDirectory option for explanation.
+
+ Default: 0
+
+## FiletransferCompressionLevel
+
+See FiletransferDirectory option for explanation.
+
+ Default: 5
+
+# LOG FILES OPTIONS
+
+## LogFileEnable
+
+If this option is set to 1, the log files feature is enabled.
+
+ Default: 0
+
+## LogFileFilename
+
+This value sets the full filename path to the file, which should be logged.
+
+## LogFileMode
+
+This value defines in which operation mode the file is logged. In mode 1 the file is only logged once when dlt-system is started. In mode 2 the file is logged regularly every time LogFileTimeDelay timer elapses. 0 = off, 1 = startup only, 2 = regular
+
+## LogFileTimeDelay
+
+This value is used in mode 3 and defines the number of seconds, after which the defined file is logged.
+
+## LogFileContextId
+
+This value defines the context id, which is used for logging the file.
+
+# LOG PROCESSES OPTIONS
+
+## LogProcessesEnable
+
+Enable the logging of processes. 0 = disabled, 1 = enabled
+
+ Default: 0
+
+## LogProcessesContextId
+
+This value defines the context id, which is used for logging processes files.
+
+ Default: PROC
+
+## LogProcessName
+
+This value defines the name of the process to be logged, as used in the file stat of each process. If the value is defined as *, all processes are logged.
+
+## LogProcessFilename
+
+This value sets the relative filename path to the file, which should be logged. The path is relative to the procfilesystem folder of the process.
+
+## LogProcessMode
+
+This value the defines in which operation mode this process file is logged. In mode 1 the file is only logged once when dlt-system is started. In mode 2 the file is logged regularly every time LogFileTimeDelay timer elapses. 0 = off, 1 = startup only, 2 = regular.
+
+ Default: 0
+
+## LogProcessTimeDelay
+
+This value is used in mode 3 and defines the number of seconds, after which the defined procfilesystem file is logged.
+
+ Default: 0
+
+# 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-system(1)**, **dlt-daemon(1)**
diff --git a/doc/dlt-system.conf.5.txt b/doc/dlt-system.conf.5.txt
deleted file mode 100644
index bb177ce..0000000
--- a/doc/dlt-system.conf.5.txt
+++ /dev/null
@@ -1,227 +0,0 @@
-DLT-SYSTEM.CONF(5)
-==================
-:doctype: manpage
-
-NAME
-----
-dlt-system.conf - DLT system process configuration file
-
-DESCRIPTION
------------
-The DLT system logging process is the central application, which logs
-system information from the platform. It provides the features
-filetransfer, syslog adapater, logging of any kind of files and
-procfilesystem logger. The individual features can be enabled and
-disabled in the configuration file.
-
-The configuration file dlt-system.conf allows to configure the different
-runtime behaviour of dlt-system. The configuration file is loaded
-during startup of dlt-system.
-
-dlt-system loads by default the configuration file /etc/dlt-system.conf.
-An alternative configuration file can be loaded with the option -c.
-
-GENERAL OPTIONS
----------------
-
-*ApplicationId*::
- The application Id used for the dlt-system process.
-
- Default: SYS
-
-SHELL OPTIONS
--------------
-
-*ShellEnable*::
- Enable the Shell for command line injections. +
- Be careful when you enable this feature. The user can send any kind of
- shell commands. The commands are executed with the rights of the
- dlt-system process. Dlt-system is started by default as user genivi.
-
- Default: 0
-
-SYSLOG ADAPTER OPTIONS
-----------------------
-
-*SyslogEnable*::
- If this option is set to 1, the syslog adapter feature is enabled.
-
- Default: 0
-
-*SyslogContextId*::
- This value defines context id of the syslog adapter.
-
- Default: SYSL
-
-*SyslogPort*::
- This value defines the UDP port opened for receiving log messages from
- syslog.
-
- Default: 47111
-
-SYSTEMD JOURNAL ADAPTER OPTIONS
--------------------------------
-
-*JournalEnable*::
- Enable the Systemd Journal Adapter. +
- This feature is only available, when dlt is compiled with
- the option "WITH_SYSTEMD_JOURNAL". +
- Dlt-system is started by default as user genivi, see dlt-system.service file.
- The user genivi must be added to one of the groups 'adm', 'wheel' or
- 'systemd-journal' to have access to all journal entries.
-
- Default: 0
-
-*JournalContextId*::
- The Context Id of the journal adapter.
-
- Default: JOUR
-
-*JournalCurrentBoot*::
- Show only log entries of current boot and follow. +
- If JournalCurrentBoot and JournalFollow are not set all
- persistent journal entries will be logged
-
- Default: 1
-
-*JournalFollow*::
- Show only the last 10 entries and follow.
-
- Default: 0
-
-*JournalMapLogLevels*::
- Map journal log levels to DLT log levels.
- - 0 Emergency DLT_LOG_FATAL
- - 1 Alert DLT_LOG_FATAL
- - 2 Critical DLT_LOG_FATAL
- - 3 Error DLT_LOG_ERROR
- - 4 Warning DLT_LOG_WARN
- - 5 Notice DLT_LOG_INFO
- - 6 Informational DLT_LOG_INFO
- - 7 Debug DLT_LOG_DEBUG
-
- Default: 1
-
-
-FILETRANSFER OPTIONS
---------------------
-
-*FiletransferEnable*::
- Enable the Filetransfer feature. +
- 0 = disabled, 1 = enabled
-
- Default: 0
-
-*FiletransferContextId*::
- The Context Id of the filetransfer.
-
- Default: FILE
-
-*FiletransferTimeStartup*::
- Time in seconds after startup of dlt-system when first file is transfered.
-
- Default: 0
-
-*FiletransferTimeDelay*::
- Time in seconds to wait between deletion of transferred file and start of next file transfer.
-
- Default: 10
-
-*FiletransferTimeoutBetweenLogs*::
- Time in seconds to wait between two file transfer logs of a single file to DLT.
-
- Default: 10
-
-*FiletransferDirectory*::
- You can define multiple file transfer directories. Define the directory to watch, whether to compress the file with zlib
- and the zlib compression level. For parsing purposes, FiletransferCompressionLevel must be the last one of three values.
-
-*FiletransferCompression*::
- See FiletransferDirectory option for explanation.
-
- Default: 0
-
-*FiletransferCompressionLevel*::
- See FiletransferDirectory option for explanation.
-
- Default: 5
-
-LOG FILES OPTIONS
------------------
-
-*LogFileEnable*::
- If this option is set to 1, the log files feature is enabled.
-
- Default: 0
-
-*LogFileFilename*::
- This value sets the full filename path to the file, which should be logged.
-
-*LogFileMode*::
- This value defines in which operation mode the file is logged.
- In mode 1 the file is only logged once when dlt-system is started.
- In mode 2 the file is logged regularly every time LogFileTimeDelay timer
- elapses. +
- 0 = off, 1 = startup only, 2 = regular
-
-*LogFileTimeDelay*::
- This value is used in mode 3 and defines the number of seconds, after
- which the defined file is logged.
-
-*LogFileContextId*::
- This value defines the context id, which is used for logging the file.
-
-LOG PROCESSES OPTIONS
----------------------
-
-*LogProcessesEnable*::
- Enable the logging of processes. +
- 0 = disabled, 1 = enabled
-
- Default: 0
-
-*LogProcessesContextId*::
- This value defines the context id, which is used for logging processes
- files.
-
- Default: PROC
-
-*LogProcessName*::
- This value defines the name of the process to be logged, as used in the
- file stat of each process.
- If the value is defined as *, all processes are logged.
-
-*LogProcessFilename*::
- This value sets the relative filename path to the file, which should be
- logged. The path is relative to the procfilesystem folder of the
- process.
-
-*LogProcessMode*::
- This value the defines in which operation mode this process file is
- logged.
- In mode 1 the file is only logged once when dlt-system is started.
- In mode 2 the file is logged regularly every time LogFileTimeDelay timer
- elapses. +
- 0 = off, 1 = startup only, 2 = regular.
-
- Default: 0
-
-*LogProcessTimeDelay*::
- This value is used in mode 3 and defines the number of seconds, after
- which the defined procfilesystem file is logged.
-
- Default: 0
-
-AUTHOR
-------
-Alexander Wenzel (alexander.aw.wenzel (at) bmw.de)
-
-RESOURCES
----------
-Main web site: <http://projects.genivi.org/diagnostic-log-trace> +
-Mailinglist: <https://lists.genivi.org/mailman/listinfo/genivi-diagnostic-log-and-trace>
-
-SEE ALSO
---------
-dlt-system(1), dlt-daemon(1)
-
diff --git a/doc/dlt.conf.5 b/doc/dlt.conf.5
deleted file mode 100644
index 0dbf9b3..0000000
--- a/doc/dlt.conf.5
+++ /dev/null
@@ -1,656 +0,0 @@
-'\" t
-.\" Title: dlt.conf
-.\" Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\" Date: 02/23/2016
-.\" Manual: \ \&
-.\" Source: \ \&
-.\" Language: English
-.\"
-.TH "DLT\&.CONF" "5" "02/23/2016" "\ \&" "\ \&"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.ie \n(.g .ds Aq \(aq
-.el .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "NAME"
-dlt.conf \- DLT daemon configuration file
-.SH "DESCRIPTION"
-.sp
-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\&.
-.sp
-The configuration file dlt\&.conf allows to configure the different runtime behaviour of the dlt\-daemon\&. It is loaded during startup of dlt\-daemon\&.
-.sp
-By default dlt\-daemon loads the file /etc/dlt\&.conf\&. An alternative configuration file can be loaded with the option \-c\&.
-.SH "GENERAL OPTIONS"
-.PP
-\fBDaemonize\fR
-.RS 4
-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\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBSendSerialHeader\fR
-.RS 4
-If set to 1 DLT daemon sends each DLT message to the client with prepanding the serial header "DLS0x01"\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBSendContextRegistration\fR
-.RS 4
-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\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBSendMessageTime\fR
-.RS 4
-If set to 1 DLt daemon sends each second a DLT control message to the client with the current timestamp from the system\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBECUId\fR
-.RS 4
-This value sets the ECU Id, which is sent with each DLT message\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: ECU1
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBSharedMemorySize\fR
-.RS 4
-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\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 100000
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBPersistanceStoragePath\fR
-.RS 4
-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\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: /tmp
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBLoggingMode\fR
-.RS 4
-The logging console for internal logging of dlt\-daemon\&.
-
-0 = log to stdout, 1 = log to syslog, 2 = log to file (see LoggingFilename)
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBLoggingLevel\fR
-.RS 4
-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
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 6
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBLoggingFilename\fR
-.RS 4
-If LoggingMode is set to 2 logs are written to the file path given here\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: /tmp/dlt\&.log
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBTimeOutOnSend\fR
-.RS 4
-Socket timeout in seconds for sending to clients\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 4
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBRingbufferMinSize\fR
-.RS 4
-The minimum size of the Ringbuffer, used for storing temporary DLT messages, until client is connected\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 500000
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBRingbufferMaxSize\fR
-.RS 4
-The max size of the Ringbuffer, used for storing temporary DLT messages, until client is connected\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 10000000
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBRingbufferStepSize\fR
-.RS 4
-The step size the Ringbuffer is increased, used for storing temporary DLT messages, until client is connected\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 500000
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBContextLogLevel\fR
-.RS 4
-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
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 4
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBContextTraceStatus\fR
-.RS 4
-Initial trace\-status that is sent when an application registers\&.
-
-DLT_TRACE_STATUS_OFF = 0, DLT_TRACE_STATUS_ON = 1
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBForceContextLogLevelAndTraceStatus\fR
-.RS 4
-Force log level and trace status of context 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\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.SH "GATEWAY CONFIGURATION OPTIONS"
-.PP
-\fBGatewayMode\fR
-.RS 4
-If set to 1 gateway mode is enabled which means this ECU serves as gateway to forward messages from others\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBGatewayConfigFile\fR
-.RS 4
-Read gateway configuration from another location\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: /tmp/dlt\-ctrl\&.sock /etc/dlt_gateway\&.conf
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.SH "CONTROL APPLICATION OPTIONS"
-.PP
-\fBControlSocketPath\fR
-.RS 4
-Path to control socket\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: /tmp/dlt\-ctrl\&.sock
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.SH "OFFLINE TRACE OPTIONS"
-.PP
-\fBOfflineTraceDirectory\fR
-.RS 4
-If this option is set, offline trace is enabled\&. This value sets the directory path to the offline trace memory\&. The directory must already exist\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: Offline tracing is disabled\&.
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBOfflineTraceFileSize\fR
-.RS 4
-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\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 1000000
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBOfflineTraceMaxSize\fR
-.RS 4
-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\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 4000000
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBOfflineTraceFileNameTimestampBased\fR
-.RS 4
-Filename timestamp based or index based\&.
-
-1 = timestamp based, 0 = index based
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 1
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.SH "LOCAL CONSOLE OUTPUT OPTIONS"
-.PP
-\fBPrintASCII\fR
-.RS 4
-Prints each received DLT message from the application in ASCII to the local console\&. This option should only be anabled for debugging purpose\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: Function is disabled
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBPrintHex\fR
-.RS 4
-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\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: Function is disabled
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBPrintHeadersOnly\fR
-.RS 4
-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\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: Function is disabled
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.SH "SERIAL CLIENT OPTIONS"
-.PP
-\fBRS232DeviceName\fR
-.RS 4
-If this value is set to a serial device name, e\&.g\&. /dev/ttyS0, a serial port is used for logging to a client\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: Serial port for logging is disabled
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBRS232Baudrate\fR
-.RS 4
-The used serial baud rate, if serial loggin is enabled\&. The RS232DeviceName must be set to enable serial logging\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 115200
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBRS232SyncSerialHeader\fR
-.RS 4
-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\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: Function is disabled
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.SH "TCP CLIENT OPTIONS"
-.PP
-\fBTCPSyncSerialHeader\fR
-.RS 4
-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\&.
-.RE
-.SH "ECU SOFTWARE VERSION OPTIONS"
-.PP
-\fBSendECUSoftwareVersion\fR
-.RS 4
-Periodically send ECU version info\&.
-
-0 = disabled, 1 = enabled
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBPathToECUSoftwareVersion\fR
-.RS 4
-Absolute path to file storing version information \- if disabled the DLT version will be send\&.
-.RE
-.SH "TIMEZONE INFO OPTIONS"
-.PP
-\fBSendTimezone\fR
-.RS 4
-Periodically send timezone info\&. 0 = disabled, 1 = enabled
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.SH "OFFLINE LOGSTORAGE OPTIONS"
-.PP
-\fBOfflineLogstorageMaxDevices\fR
-.RS 4
-Maximum devices to be used as offline logstorage devices\&.
-
-0 = disabled, 1 \&.\&. DLT_OFFLINE_LOGSTORAGE_MAX_DEVICES
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 0 (Functionality is disabled)
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBOfflineLogstorageDirPath\fR
-.RS 4
-Path to store DLT offline log storage messages\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: off
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBOfflineLogstorageTimestamp\fR
-.RS 4
-Appends timestamp in log file name\&.
-
-0 = disabled, 1 = enabled
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 1
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBOfflineLogstorageDelimiter\fR
-.RS 4
-Appends delimiter in log file name, only punctuation characters allowed\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: _
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBOfflineLogstorageMaxCounter\fR
-.RS 4
-Wrap around value for log file count in file name\&.
-
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: UINT_MAX
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.PP
-\fBOfflineLogstorageCacheSize\fR
-.RS 4
-Maximal used memory for Logstorage Cache in KB\&.
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-Default: 30000 KB
-.fi
-.if n \{\
-.RE
-.\}
-.RE
-.SH "AUTHOR"
-.sp
-Alexander Wenzel (alexander\&.aw\&.wenzel (at) bmw\&.de)
-.SH "RESOURCES"
-.sp
-Main web site: http://projects\&.genivi\&.org/diagnostic\-log\-trace Mailinglist: https://lists\&.genivi\&.org/mailman/listinfo/genivi\-diagnostic\-log\-and\-trace
-.SH "SEE ALSO"
-.sp
-dlt\-daemon(1), dlt\-system(1)
diff --git a/doc/dlt.conf.5.md b/doc/dlt.conf.5.md
new file mode 100644
index 0000000..08879b0
--- /dev/null
+++ b/doc/dlt.conf.5.md
@@ -0,0 +1,294 @@
+% 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)
+
+ 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
+
+## 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
+
+# GATEWAY CONFIGURATION
+
+## GatewayMode
+
+Enable Gateway mode
+
+ Default: 0
+
+## GatewayConfigFile
+
+Read gateway configuration from another location
+
+ Default: /etc/dlt_gateway.conf
+
+# 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
+
+# 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)**
diff --git a/doc/dlt.conf.5.txt b/doc/dlt.conf.5.txt
deleted file mode 100644
index 8f4f2e7..0000000
--- a/doc/dlt.conf.5.txt
+++ /dev/null
@@ -1,300 +0,0 @@
-DLT.CONF(5)
-=============
-:doctype: manpage
-
-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.
-
-By default dlt-daemon loads the file /etc/dlt.conf. An
-alternative configuration file can be loaded with the option -c.
-
-GENERAL OPTIONS
----------------
-
-*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: 0
-
-*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)
-
- 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
-
-*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
-
-GATEWAY CONFIGURATION
----------------------
-
-*GatewayMode*::
- Enable Gateway mode
-
- Default: 0
-
-*GatewayConfigFile*::
- Read gateway configuration from another location
-
- Default: /etc/dlt_gateway.conf
-
-CONTROL APPLICATION OPTIONS
----------------------------
-
-*ControlSocketPath*::
- Path to control socket.
-
- Default: /tmp/dlt-ctrl.sock
-
-OFFLINE TRACE OPTIONS
----------------------
-
-*OfflineTraceDirectory*::
- If this option is set, offline trace is enabled. This value sets the
- directory path to the offline trace memory. The directory must already
- exist.
-
- Default: Offline tracing is disabled.
-
-*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: 1
-
-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.
-
-ECU SOFTWARE VERSION OPTIONS
-----------------------------
-
-*SendECUSoftwareVersion*::
- Periodically send ECU version info. +
- 0 = disabled, 1 = enabled
-
- Default: 0
-
-*PathToECUSoftwareVersion*::
- Absolute path to file storing version information - if disabled the DLT version will be send.
-
-TIMEZONE INFO OPTIONS
----------------------
-
-*SendTimezone*::
- Periodically send timezone info.
- 0 = disabled, 1 = enabled
-
- Default: 0
-
-OFFLINE LOGSTORAGE OPTIONS
---------------------------
-
-*OfflineLogstorageMaxDevices*::
- Maximum devices to be used as offline logstorage devices. +
- 0 = disabled, 1 .. DLT_OFFLINE_LOGSTORAGE_MAX_DEVICES
-
- Default: 0 (Functionality 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: 1
-
-*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
-
-AUTHOR
-------
-Alexander Wenzel (alexander.aw.wenzel (at) bmw.de)
-
-RESOURCES
----------
-Main web site: <http://projects.genivi.org/diagnostic-log-trace> +
-Mailinglist: <https://lists.genivi.org/mailman/listinfo/genivi-diagnostic-log-and-trace>
-
-SEE ALSO
---------
-dlt-daemon(1), dlt-system(1)
-
diff --git a/doc/dlt_cdh.md b/doc/dlt_cdh.md
new file mode 100644
index 0000000..20857cd
--- /dev/null
+++ b/doc/dlt_cdh.md
@@ -0,0 +1,88 @@
+# DLT Core Dump Handler
+
+Back to [README.md](../README.md)
+
+## Overview
+
+When a program crash occurs on the system the Core Dump Handler is triggered to extract relevant information from the core dump generated by the system. The handler stores this extracted information in the ECU's file system as Core Dump Handler Files. These files are transported via the link:dlt_filetransfer.html[DLT Filetransfer] mechanism. The transferred information can be combined and integrated into the developer toolchain (gdb, Release SW, etc.).
+
+![alt text](images/dlt_core_dump_handler.png "DLT CDH")
+
+## Integration
+
+### To build the core dump handler
+
+Add
+
+> -DWITH_DLT_COREDUMPHANDLER=ON -DTARGET_CPU_NAME={i686|x86_64}
+
+options to cmake. The core dump handler code currently supports the i686 and x86_64 architecture.
+
+### Temporary activation as replacement for default crash handler until next reboot
+
+As *root* (not sudo) execute the following:
+
+> echo "|/usr/local/bin/dlt-cdh %t %p %s %e" > /proc/sys/kernel/core_pattern
+
+NOTE: replace */usr/local/bin* with the path dlt-cdh has been installed to. This instructs the kernel to pipe a core dump as standard input to dlt-cdh together with the following parameters:
+
+- %t time of dump
+- %p PID of dumped process
+- %s number of signal causing dump
+- %e executable filename
+
+See
+
+> man core
+
+for details
+
+### Persistent activation as replacement for default crash handler
+
+In */usr/lib/sysctl.d/* the file *50-coredump.conf* has to be created which is done automatically by
+
+> make install
+
+Unfortunately - at least on Fedora systems - abrt has to be removed with
+
+> yum remove abrtd*
+
+because it ruthlessly overwrites our change at every boot. The core dump handler can be activated then without reboot by running
+
+> sysctl -p /usr/lib/sysctl.d/50-coredump.conf
+
+### Configuration of link:dlt_filetransfer.html[DLT Filetransfer] for usage with dlt-cdh
+
+Make sure the following is set in the "Filetransfer Manager" section of */etc/dlt-system.conf*:
+
+> ...
+> FiletransferEnable = 1
+> ...
+> FiletransferDirectory = /var/core
+> ...
+
+### Generation of core dump
+
+When a crash happens the kernel invokes dlt-cdh and passes it the core dump as standard input. dlt-cdh does the following tasks:
+
+- check if enough disk space available
+- create target directories if not existing:
+ - /var/core
+ - /var/core_tmp
+ - /tmp/.core_locks
+- clean /var/core_tmp
+- retrieve context data mainly from /proc fs of the crashed process to a temporary context file in text format
+- initialise core dump
+- read ELF headers and notes to temporary core dump output file
+- move context file and core dump to /var/core
+- create id which identifies the crash
+
+After the files have been moved to /var/core the [File Transfer](dlt_filetransfer.md) mechanism ensures that they are sent to connected clients.
+
+## AUTHOR
+
+Lutz Helwing <Lutz_Helwing (at) mentor (dot) com>
+
+## COPYRIGHT
+
+Copyright (C) 2011 - 2015 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 <http://mozilla.org/MPL/2.0/>. \ No newline at end of file
diff --git a/doc/dlt_cdh.txt b/doc/dlt_cdh.txt
deleted file mode 100644
index 18302ab..0000000
--- a/doc/dlt_cdh.txt
+++ /dev/null
@@ -1,128 +0,0 @@
-////
-# SPDX license identifier: MPL-2.0
-#
-# Copyright (C) 2011-2015, BMW AG
-#
-# This file is part of GENIVI Project DLT - Diagnostic Log and Trace.
-#
-# This Source Code Form is subject to the terms of the
-# Mozilla Public License (MPL), v. 2.0.
-# If a copy of the MPL was not distributed with this file,
-# You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# For further information see http://www.genivi.org/.
-////
-
-DLT Core Dump Handler
-=====================
-Lutz Helwing <Lutz_Helwing@mentor.com>
-0.0.1, 23rd June 2015: Initial version
-
-image::images/genivi_chrome_1_transparent.png[width=128]
-
-
-Overview
---------
-
-When a program crash occurs on the system the Core Dump Handler is triggered to extract relevant information from the core dump generated by the system. The handler stores this extracted information in the ECU's file system as Core Dump Handler Files. These files are transported via the link:dlt_filetransfer.html[DLT Filetransfer] mechanism. The transferred information can be combined and integrated into the developer toolchain (gdb, Release SW, etc.).
-
-image::images/dlt_core_dump_handler.png[width=600]
-
-
-Integration
------------
-
-To build the core dump handler
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Add
-
-----
--DWITH_DLT_COREDUMPHANDLER=ON -DTARGET_CPU_NAME={i686|x86_64}
-----
-
-options to cmake. The core dump handler code currently supports the i686 and x86_64 architecture.
-
-
-Temporary activation as replacement for default crash handler until next reboot
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-As *root* (not sudo) execute the following: +
-
-----
-echo "|/usr/local/bin/dlt-cdh %t %p %s %e" > /proc/sys/kernel/core_pattern
-----
-
-(NOTE: replace `/usr/local/bin` with the path dlt-cdh has been installed to) +
-This instructs the kernel to pipe a core dump as standard input to dlt-cdh together with the following parameters:
-
-* %t time of dump
-* %p PID of dumped process
-* %s number of signal causing dump
-* %e executable filename
-
-See
-
-----
-man core
-----
-
-for details
-
-
-Persistent activation as replacement for default crash handler
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-In `/usr/lib/sysctl.d/` the file `50-coredump.conf` has to be created which is done automatically by
-
-----
-make install
-----
-
-Unfortunately - at least on Fedora systems - abrt has to be removed with
-
-----
-yum remove abrtd*
-----
-
-because it ruthlessly overwrites our change at every boot. +
-The core dump handler can be activated then without reboot by running
-
-----
-sysctl -p /usr/lib/sysctl.d/50-coredump.conf
-----
-
-
-Configuration of link:dlt_filetransfer.html[DLT Filetransfer] for usage with dlt-cdh
-------------------------------------------------------------------------------------
-
-Make sure the following is set in the "Filetransfer Manager" section of `/etc/dlt-system.conf`:
-
-----
-...
-FiletransferEnable = 1
-...
-FiletransferDirectory = /var/core
-...
-----
-
-
-Generation of core dump
------------------------
-
-When a crash happens the kernel invokes dlt-cdh and passes it the core dump as standard input. +
-dlt-cdh does the following tasks:
-
-* check if enough disk space available
-* create target directories if not existing:
-** /var/core
-** /var/core_tmp
-** /tmp/.core_locks
-* clean /var/core_tmp
-* retrieve context data mainly from /proc fs of the crashed process to a temporary context file in text format
-* initialise core dump
-* read ELF headers and notes to temporary core dump output file
-* move context file and core dump to /var/core
-* create id which identifies the crash
-
-After the files have been moved to /var/core the link:dlt_filetransfer.html[DLT Filetransfer] mechanism ensures that they are sent to connected clients.
diff --git a/doc/dlt_extended_network_trace.md b/doc/dlt_extended_network_trace.md
new file mode 100644
index 0000000..24554c0
--- /dev/null
+++ b/doc/dlt_extended_network_trace.md
@@ -0,0 +1,91 @@
+# Extended Network Trace
+
+Back to [README.md](../README.md)
+
+## Introduction
+
+The extended network trace allows the user to send or truncate network trace messages that are larger than the normal maximum size of a DLT message.
+
+## Protocol
+
+When truncation of messages is allowed, the truncated messages will be wrapped into a special message which indicates that a network trace message was truncated and what was the original size of the message.
+
+Segmented messages are sent in multiple packages. The package stream is prepended with a a start message indicating which contain a unique handle for this stream, size of data to follow, count of segments to follow and segment size.
+
+Each segment contains the stream handle, segment sequence number, the data and data length.
+
+Finally after sending all the data segments, one more packet is sent to indicate the end of the stream.
+
+## Truncated package
+
+Truncated message can be sent using the following function:
+
+> int dlt_user_trace_network_truncated(DltContext *handle, DltNetworkTraceType nw_trace_type, uint16_t header_len, void *header, uint16_t payload_len, void *payload, int allow_truncate)
+
+This will send a packet in the following format:
+
+Value | Description | Type
+:--- | :--- | :---
+NWTR | Package identifier | STRING
+header | nw_trace header and it's length | RAW
+size | Original size of the message | UINT
+payload | The truncated nw_trace payload | RAW
+
+## Segmented messages
+
+User can send a segmented network trace message asynchronously using:
+
+> void dlt_user_trace_network_segmented(DltContext *handle, DltNetworkTraceType nw_trace_type, uint16_t header_len, void *header, uint16_t payload_len, void *payload)
+
+This will start a background thread and return immediately.
+
+User can also send all the required packages one by one using:
+
+> int dlt_user_trace_network_segmented_start(unsigned int *id, DltContext *handle, DltNetworkTraceType nw_trace_type, uint16_t header_len, void *header, uint16_t payload_len)
+>
+> int dlt_user_trace_network_segmented_segment(int id, DltContext *handle, DltNetworkTraceType nw_trace_type, int sequence, uint16_t payload_len, void *payload)
+>
+> int dlt_user_trace_network_segmented_end(int id, DltContext *handle, DltNetworkTraceType nw_trace_type)
+
+*NOTE*: It is not recommended to use these functions unless you really have to.
+
+## Segmented start packet
+
+The first packet in the stream is the header:
+
+Value | Description | Type
+:--- | :--- | :---
+NWST | Package identifier | STRING
+streamhandle | Unique identifier for all packages in the stream | UINT
+header | nw_trace header and it's length | RAW
+payloadsize | Size of the complete payload in this stream | UINT
+segmentcount | Number of segments to follow | UINT
+segmentlen | Size of one segment | UINT
+
+## Data segment
+
+After the header, follows a stream of data segments.
+
+Value | Description | Type
+:--- | :--- | :---
+NWCH | Package identifier | STRING
+streamhandle | Unique identifier for all packages in the stream | UINT
+sequence | Sequence number of this segment | UINT
+data | One segment of the original nw_trace | RAW
+
+## End packet
+
+After all the segments have been sent, an End identifier is sent.
+
+Value | Description | Type
+:--- | :--- | :---
+NWEN | Package identifier | STRING
+streamhandle | Unique identifier for all packages in the stream | UINT
+
+## Author
+
+Lassi Marttala <Lassi.LM.Marttala (at) partner (dot) bmw (dot) de>
+
+## COPYRIGHT
+
+Copyright (C) 2011 - 2015 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 <http://mozilla.org/MPL/2.0/>. \ No newline at end of file
diff --git a/doc/dlt_extended_network_trace.txt b/doc/dlt_extended_network_trace.txt
deleted file mode 100644
index 42cdf92..0000000
--- a/doc/dlt_extended_network_trace.txt
+++ /dev/null
@@ -1,99 +0,0 @@
-////
-# SPDX license identifier: MPL-2.0
-#
-# Copyright (C) 2011-2015, BMW AG
-#
-# This file is part of GENIVI Project DLT - Diagnostic Log and Trace.
-#
-# This Source Code Form is subject to the terms of the
-# Mozilla Public License (MPL), v. 2.0.
-# If a copy of the MPL was not distributed with this file,
-# You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# For further information see http://www.genivi.org/.
-////
-
-Extended Network Trace
-======================
-Lassi Marttala <Lassi.LM.Marttala@partner.bmw.de>
-0.0.1, 2012/10/11: Initial version
-
-image::images/genivi_chrome_1_transparent.png[width=128]
-
-== Introduction
-The extended network trace allows the user to send or truncate network trace messages
-that are larger than the normal maximum size of a DLT message.
-
-== Protocol
-When truncation of messages is allowed, the truncated messages will be wrapped into a special message which indicates
-that a network trace message was truncated and what was the original size of the message.
-
-Segmented messages are sent in multiple packages. The package stream is prepended with a a start message indicating
-which contain a unique handle for this stream, size of data to follow, count of segments to follow and segment size.
-Each segment contains the stream handle, segment sequence number, the data and data length.
-Finally after sending all the data segments, one more packet is sent to indicate the end of the stream.
-
-== Truncated package
-Truncated message can be sent using the following function:
-
-----
-int dlt_user_trace_network_truncated(DltContext *handle, DltNetworkTraceType nw_trace_type, uint16_t header_len, void *header, uint16_t payload_len, void *payload, int allow_truncate)
-----
-
-This will send a packet in the following format:
-
-|==================================================================
-| NWTR | Package identifier. STRING
-| header | nw_trace header and it's length. RAW
-| size | Original size of the message. UINT
-| payload | The truncated nw_trace payload. RAW
-|==================================================================
-
-== Segmented messages
-User can send a segmented network trace message asynchronously using:
-
-----
-void dlt_user_trace_network_segmented(DltContext *handle, DltNetworkTraceType nw_trace_type, uint16_t header_len, void *header, uint16_t payload_len, void *payload)
-----
-
-This will start a background thread and return immediately.
-
-User can also send all the required packages one by one using:
-
-----
-int dlt_user_trace_network_segmented_start(unsigned int *id, DltContext *handle, DltNetworkTraceType nw_trace_type, uint16_t header_len, void *header, uint16_t payload_len)
-int dlt_user_trace_network_segmented_segment(int id, DltContext *handle, DltNetworkTraceType nw_trace_type, int sequence, uint16_t payload_len, void *payload)
-int dlt_user_trace_network_segmented_end(int id, DltContext *handle, DltNetworkTraceType nw_trace_type)
-----
-
-It is not recommended to use these functions unless you really have to.
-
-== Segmented start packet
-The first packet in the stream is the header:
-
-|==================================================================
-| NWST | Package identifier. STRING
-| streamhandle | Unique identifier for all packages in the stream. UINT
-| header | nw_trace header and it's length. RAW
-| payloadsize | Size of the complete payload in this stream. UINT
-| segmentcount | Number of segments to follow.
-| segmentlen | Size of one segment
-|==================================================================
-
-== Data segment
-After the header, follows a stream of data segments.
-
-|==================================================================
-| NWCH | Package identifier. STRING
-| streamhandle | Unique identifier for all packages in the stream. UINT
-| sequence | Sequence number of this segment. UINT
-| data | One segment of the original nw_trace. RAW
-|==================================================================
-
-== End packet
-After all the segments have been sent, an End identifier is sent.
-
-|==================================================================
-| NWEN | Package identifier. STRING
-| streamhandle | Unique identifier for all packages in the stream. UINT
-|==================================================================
diff --git a/doc/dlt_filetransfer.md b/doc/dlt_filetransfer.md
new file mode 100644
index 0000000..2cf2ba3
--- /dev/null
+++ b/doc/dlt_filetransfer.md
@@ -0,0 +1,235 @@
+# DLT Filetransfer
+
+Back to [README.md](../README.md)
+
+## Overview
+
+DLT is a reusable open source software component for standardized logging and tracing in infotainment ECUs based on the AUTOSAR 4.0 standard.
+
+The goal of DLT is the consolidation of the existing variety of logging and tracing protocols on one format.
+
+## Introduction to DLT Filetransfer
+
+With DLT Filetransfer it is possible store the binary data of a file to the automotive dlt log.
+
+The file will be read in binary mode and put as several chunks to a DLT_INFO log. With a special plugin of the dlt viewer, you can extract the embedded files from the trace and save them.
+
+It can be used for smaller files, e.g. HMI screenshots or little coredumps.
+
+## Protocol
+
+The file transfer is at least one single transaction. This transaction consist of three main types of packages:
+
+- header package
+- one or more data packages
+- end package
+
+## Header Package
+
+Every filetransfer must begin with the header package using:
+
+> int dlt_user_log_file_header(DltContext *fileContext,const char *filename)
+
+Header Header Package Protocol:
+
+Value | Description
+:--- | :---
+FLST | Package flag
+fileserialnumber | Inode of the file used as file serialnumber
+filename | Use the absolute filepath to the file
+filesize | Filesize of the file
+file creation date | Creation date of the file
+number of packages | Counted packages which will be transferred in the data packages
+BUFFER_SIZE | Defined buffer size to reconstruct the file
+FLST | Package flag
+
+## Data Package
+
+After the header package was sent, at least one or more data packages can be send using:
+
+> int dlt_user_log_file_data(DltContext *fileContext,const char *filename,int packageToTransfer, int timeout)
+
+Data Data Package Protocol:
+
+Value | Description
+:--- | :---
+FLDA | Package flag
+fileserialnumber | Inode of the file used as file serialnumber
+PackageNumber | Transferred package
+Data | Payload containing data
+FLDA | Package flag
+
+## End Package
+
+After all data packages were sent, the end package must be sent to indicate that the filetransfer is over using:
+
+> int dlt_user_log_file_end(DltContext *fileContext,const char *filename,int deleteFlag)
+
+End Package Protocol:
+
+Value | Description
+:--- | :---
+FLFI | Package flag
+fileserialnumber | Inode of the file
+FLFI | Package flag
+
+## File information
+
+The library offers the user the possibility to log informations about a file using the following method without transferring the file itself using:
+
+> dlt_user_log_file_infoAbout(DltContext *fileContext, const char *filename)
+
+File Information Protocol:
+
+Value | Description
+:--- | :---
+FLIF | Package flag
+fileserialnumber | Inode of the file used as file serialnumber
+filename | Use the absolute filepath to the file
+filesize | Filesize of the file
+file creation date | Creation date of the file
+number of packages | Counted packages which will be transferred in the data packages
+FLIF | Package flag
+
+## File transfer error
+
+```c
+//! Error code for dlt_user_log_file_complete
+#define ERROR_FILE_COMPLETE -300
+//! Error code for dlt_user_log_file_complete
+#define ERROR_FILE_COMPLETE1 -301
+//! Error code for dlt_user_log_file_complete
+#define ERROR_FILE_COMPLETE2 -302
+//! Error code for dlt_user_log_file_complete
+#define ERROR_FILE_COMPLETE3 -303
+//! Error code for dlt_user_log_file_head
+#define ERROR_FILE_HEAD -400
+//! Error code for dlt_user_log_file_data
+#define ERROR_FILE_DATA -500
+//! Error code for dlt_user_log_file_data
+#define DLT_FILETRANSFER_ERROR_FILE_DATA_USER_BUFFER_FAILED -501
+//! Error code for dlt_user_log_file_end
+#define ERROR_FILE_END -600
+//! Error code for dlt_user_log_file_infoAbout
+#define ERROR_INFO_ABOUT -700
+//! Error code for dlt_user_log_file_packagesCount
+#define ERROR_PACKAGE_COUNT -800
+```
+
+If an error happens during file transfer, the library will execute the mehtod:
+
+> void dlt_user_log_file_errorMessage(DltContext *fileContext, const char *filename, int errorCode)
+
+File transfer error Protocol:
+
+Value | Description
+:--- | :---
+FLER | Package flag
+error code | see error codes above
+linux error code | standard linux error code
+fileserialnumber | Inode of the file used as file serialnumber
+filename | Use the absolute filepath to the file
+filesize | Filesize of the file
+file creation date | Creation date of the file
+number of packages | Counted packages which will be transferred in the data packages
+FLER | Package flag
+
+If the file doesn't exist, the conent of the error package is a little bit different:
+
+Value | Description
+:--- | :---
+FLER | Package flag
+error code | see error codes above
+linux error code | standard linux error code
+filename | Use the absolute filepath to the file
+FLER | Package flag
+
+## Using Using DLT Filetransfer
+
+There are two ways to use the filetransfer
+
+- Automatic filetransfer in one step
+- Header, data and end package order handeld by the user
+
+### Automatic
+
+Call
+
+- dlt_user_log_file_complete
+
+The method needs the following arguments:
+
+- fileContext -> Context for logging the file to dlt
+- filename -> Use the absolute file path to the file
+- deleteFlag -> Flag if the file will be deleted after transfer. 1->delete, 0->notDelete
+- timeout -> Deprecated.
+
+The order of the packages is to send at first the header, then one or more data packages (depends on the filesize) and in the end the end package.
+The advantage of this method is, that you must not handle the package ordering by your own.
+
+Within dlt_user_log_file_complete the free space of the user buffer will be checked. If the free space of the user buffer < 50% then the
+actual package won't be transferred and a timeout will be executed.
+
+If the daemon crashes and the user buffer is full -> the automatic method is in an endless loop.
+
+### Manual
+
+Manual starting filetransfer with the following commands:
+
+- dlt_user_log_file_head | Transfers only the header of the file
+- dlt_user_log_file_data | Transfers only one single package of a file
+- dlt_user_log_file_end | Tranfers only the end of the file
+
+This ordering is very important, so that you can save the transferred files to hard disk on client side with a dlt viewer plugin.
+The advantage of using several steps to transfer files by your own is, that you are very flexible to integrate the filetransfer
+in your code.
+
+An other difference to the automatic method is, that only a timeout will be done. There is no check of the user buffer.
+
+## Important for integration
+
+You should care about blocking the main program when you intergrate filetransfer in your code.
+Maybe it's useful to extract the filetransfer in an extra thread.
+Another point is the filesize. The bigger the file is, the longer takes it to log the file to dlt.
+
+## Example dlt filetransfer
+
+For an example file transfer you can use
+
+```bash
+Usage: dlt-example-filetransfer \[options\] \<command\>
+Filetransfer example with DLT Package Version: 2.2.0 , Package Revision: 1666, build on May 28 2011 02:18:19
+Command:
+-f file - File to transfer (absolute path)
+Options:
+-a apid - Set application id to apid (default: FLTR)
+-c ctid - Set context id to ctid (default: FLTR)
+-t ms - Timeout between file packages in ms (minimum 20 ms)
+-d - Flag to delete the file after the transfer (default: false)
+-i - Flag to log file infos to DLT before transfer file (default: false)
+-h - This help
+```
+
+## Testing dlt filetransfer
+
+When you call "sudo make install", some automatic tests will be installed. Start the test using the following command from bash:
+
+> dlt-test-filetransfer
+
+It's important that the dlt-filetransfer example files are installed in /usr/share/dlt-filetransfer which will be done automatically by using "sudo make install".
+
+- testFile1Run1: Test the file transfer with the condition that the transferred file is smaller as the file transfer buffer using dlt_user_log_file_complete.
+- testFile1Run2: Test the file transfer with the condition that the transferred file is smaller as the file transfer buffer using single package transfer
+- testFile2Run1: Test the file transfer with the condition that the transferred file is bigger as the file transfer buffer using dlt_user_log_file_complete.
+- testFile2Run2: Test the file transfer with the condition that the transferred file is bigger as the file transfer buffer using single package transfer
+- testFile3Run1: Test the file transfer with the condition that the transferred file does not exist using dlt_user_log_file_complete.
+- testFile3Run2: Test the file transfer with the condition that the transferred file does not exist using single package transfer
+- testFile3Run3: Test which logs some information about the file.
+
+## AUTHOR
+
+Christian Muck <Christian (dot) Muck (at) bmw (dot) de>
+
+## COPYRIGHT
+
+Copyright (C) 2012 - 2015 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 <http://mozilla.org/MPL/2.0/>. \ No newline at end of file
diff --git a/doc/dlt_filetransfer.txt b/doc/dlt_filetransfer.txt
deleted file mode 100644
index 1298c0e..0000000
--- a/doc/dlt_filetransfer.txt
+++ /dev/null
@@ -1,264 +0,0 @@
-////
-# SPDX license identifier: MPL-2.0
-#
-# Copyright (C) 2011-2015, BMW AG
-#
-# This file is part of GENIVI Project DLT - Diagnostic Log and Trace.
-#
-# This Source Code Form is subject to the terms of the
-# Mozilla Public License (MPL), v. 2.0.
-# If a copy of the MPL was not distributed with this file,
-# You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# For further information see http://www.genivi.org/.
-////
-
-DLT Filetransfer
-================
-Christian Muck <Christian.Muck@bmw.de>
-0.0.1, 2012/10/11: Initial version
-
-image::images/genivi_chrome_1_transparent.png[width=128]
-
-Overview
---------
-DLT is a reusable open source software component for standardized logging and tracing in infotainment ECUs based on the AUTOSAR 4.0 standard.
-The goal of DLT is the consolidation of the existing variety of logging and tracing protocols on one format.
-
-
-Introduction to DLT Filetransfer
----------------------------------
-With DLT Filetransfer it is possible store the binary data of a file to the automotive dlt log.
-The file will be read in binary mode and put as several chunks to a DLT_INFO log. With a special plugin of the dlt viewer, you can extract the embedded files from the trace and save them.
-It can be used for smaller files, e.g. HMI screenshots or little coredumps.
-
-Protocol
----------
-The file transfer is at least one single transaction. This transaction consist of three main types of packages:
-
-* header package
-* one or more data packages
-* end package
-
-Header Package
-~~~~~~~~~~~~~~
-Every filetransfer must begin with the header package using:
-
-----
-int dlt_user_log_file_header(DltContext *fileContext,const char *filename)
-----
-
-Header Header Package Protocol:
-
-|==================================================================
-| FLST | Package flag
-| fileserialnumber | Inode of the file used as file serialnumber
-| filename | Use the absolute filepath to the file
-| filesize | Filesize of the file
-| file creation date | Creation date of the file
-| number of packages | Counted packages which will be transferred in the data packages
-| BUFFER_SIZE | Defined buffer size to reconstruct the file
-| FLST | Package flag
-|==================================================================
-
-Data Package
-~~~~~~~~~~~~
-After the header package was sent, at least one or more data packages can be send using:
-
-----
-int dlt_user_log_file_data(DltContext *fileContext,const char *filename, int packageToTransfer, int timeout)
-----
-
-Data Data Package Protocol:
-
-|==================================================================
-| FLDA | Package flag
-| fileserialnumber | Inode of the file used as file serialnumber
-| PackageNumber | Transferred package
-| Data | Payload containing data
-| FLDA | Package flag
-|==================================================================
-
-End Package
-~~~~~~~~~~~
-After all data packages were sent, the end package must be sent to indicate that the filetransfer is over using:
-
-----
-int dlt_user_log_file_end(DltContext *fileContext,const char *filename,int deleteFlag)
-----
-
-End Package Protocol:
-
-|==================================================================
-| FLFI | Package flag
-| fileserialnumber | Inode of the file
-| FLFI | Package flag
-|==================================================================
-
-File information
-~~~~~~~~~~~~~~~~
-The library offers the user the possibility to log informations about a file using the following method without transferring the file itself using:
-
-----
-dlt_user_log_file_infoAbout(DltContext *fileContext, const char *filename)
-----
-
-File Information Protocol:
-
-|==================================================================
-| FLIF | Package flag
-| fileserialnumber | Inode of the file used as file serialnumber
-| filename | Use the absolute filepath to the file
-| filesize | Filesize of the file
-| file creation date | Creation date of the file
-| number of packages | Counted packages which will be transferred in the data packages
-| FLIF | Package flag
-|==================================================================
-
-File transfer error
-~~~~~~~~~~~~~~~~~~~
-
-----
-//! Error code for dlt_user_log_file_complete
-#define ERROR_FILE_COMPLETE -300
-//! Error code for dlt_user_log_file_complete
-#define ERROR_FILE_COMPLETE1 -301
-//! Error code for dlt_user_log_file_complete
-#define ERROR_FILE_COMPLETE2 -302
-//! Error code for dlt_user_log_file_complete
-#define ERROR_FILE_COMPLETE3 -303
-//! Error code for dlt_user_log_file_head
-#define ERROR_FILE_HEAD -400
-//! Error code for dlt_user_log_file_data
-#define ERROR_FILE_DATA -500
-//! Error code for dlt_user_log_file_data
-#define DLT_FILETRANSFER_ERROR_FILE_DATA_USER_BUFFER_FAILED -501
-//! Error code for dlt_user_log_file_end
-#define ERROR_FILE_END -600
-//! Error code for dlt_user_log_file_infoAbout
-#define ERROR_INFO_ABOUT -700
-//! Error code for dlt_user_log_file_packagesCount
-#define ERROR_PACKAGE_COUNT -800
-----
-
-If an error happens during file transfer, the library will execute the mehtod:
-
-----
-void dlt_user_log_file_errorMessage(DltContext *fileContext, const char *filename, int errorCode)
-----
-
-File transfer error Protocol:
-
-|==================================================================
-| FLER | Package flag
-| error code | see error codes above
-| linux error code | standard linux error code
-| fileserialnumber | Inode of the file used as file serialnumber
-| filename | Use the absolute filepath to the file
-| filesize | Filesize of the file
-| file creation date | Creation date of the file
-| number of packages | Counted packages which will be transferred in the data packages
-| FLER | Package flag
-|==================================================================
-
-If the file doesn't exist, the conent of the error package is a little bit different:
-
-|==================================================================
-| FLER | Package flag
-| error code | see error codes above
-| linux error code | standard linux error code
-| filename | Use the absolute filepath to the file
-| FLER | Package flag
-|==================================================================
-
-Using Using DLT Filetransfer
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-There are two ways to use the filetransfer
-
-* Automatic filetransfer in one step
-* Header, data and end package order handeld by the user
-
-Automatic
-~~~~~~~~~
-Call
-
-* dlt_user_log_file_complete
-
-The method needs the following arguments:
-
-* fileContext -> Context for logging the file to dlt
-* filename -> Use the absolute file path to the file
-* deleteFlag -> Flag if the file will be deleted after transfer. 1->delete, 0->notDelete
-* timeout -> Deprecated.
-
-The order of the packages is to send at first the header, then one or more data packages (depends on the filesize) and in the end the end package.
-The advantage of this method is, that you must not handle the package ordering by your own.
-
-Within dlt_user_log_file_complete the free space of the user buffer will be checked. If the free space of the user buffer < 50% then the
-actual package won't be transferred and a timeout will be executed.
-
-If the daemon crashes and the user buffer is full -> the automatic method is in an endless loop.
-
-Manual
-~~~~~~
-Manual starting filetransfer with the following commands:
-
-* dlt_user_log_file_head | Transfers only the header of the file
-* dlt_user_log_file_data | Transfers only one single package of a file
-* dlt_user_log_file_end | Tranfers only the end of the file
-
-This ordering is very important, so that you can save the transferred files to hard disk on client side with a dlt viewer plugin.
-The advantage of using several steps to transfer files by your own is, that you are very flexible to integrate the filetransfer
-in your code.
-
-An other difference to the automatic method is, that only a timeout will be done. There is no check of the user buffer.
-
-Important Important for integration
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-You should care about blocking the main program when you intergrate filetransfer in your code.
-Maybe it's useful to extract the filetransfer in an extra thread.
-Another point is the filesize. The bigger the file is, the longer takes it to log the file to dlt.
-
-Example dlt filetransfer
-~~~~~~~~~~~~~~~~~~~~~~~~
-For an example file transfer you can use
-
-----
-Usage: dlt-example-filetransfer [options] <command>
-Filetransfer example with DLT Package Version: 2.2.0 , Package Revision: 1666, build on May 28 2011 02:18:19
-Command:
--f file - File to transfer (absolute path)
-Options:
--a apid - Set application id to apid (default: FLTR)
--c ctid - Set context id to ctid (default: FLTR)
--t ms - Timeout between file packages in ms (minimum 20 ms)
--d - Flag to delete the file after the transfer (default: false)
--i - Flag to log file infos to DLT before transfer file (default: false)
--h - This help
-----
-
-Testing dlt filetransfer
-~~~~~~~~~~~~~~~~~~~~~~~~
-When you call "sudo make install", some automatic tests will be installed. Start the test using the following command from bash:
-
-----
-dlt-test-filetransfer
-----
-
-It's important that the dlt-filetransfer example files are installed in /usr/share/dlt-filetransfer which will be done automatically by using "sudo make install".
-
-* testFile1Run1
-Test the file transfer with the condition that the transferred file is smaller as the file transfer buffer using dlt_user_log_file_complete.
-* testFile1Run2
-Test the file transfer with the condition that the transferred file is smaller as the file transfer buffer using single package transfer
-* testFile2Run1
-Test the file transfer with the condition that the transferred file is bigger as the file transfer buffer using dlt_user_log_file_complete.
-* testFile2Run2
-Test the file transfer with the condition that the transferred file is bigger as the file transfer buffer using single package transfer
-* testFile3Run1
-Test the file transfer with the condition that the transferred file does not exist using dlt_user_log_file_complete.
-* testFile3Run2
-Test the file transfer with the condition that the transferred file does not exist using single package transfer
-* testFile3Run3
-Test which logs some information about the file.
-
diff --git a/doc/dlt_for_developers.md b/doc/dlt_for_developers.md
index 082c4ba..9dc575c 100644
--- a/doc/dlt_for_developers.md
+++ b/doc/dlt_for_developers.md
@@ -10,12 +10,10 @@ Table of Contents
5. [DLT Library Runtime Configuration](#DLT-Library-Runtime-Configuration)
6. [DLT API Usage](#DLT-API-Usage)
7. [DLT injection messages](#DLT-Injection-Messages)
-8.1 Log level changed callback 21
-9 Build DLT from source 21
-
- 
+8. [Log level changed callback](#Log-level-changed-callback)
## DLT Example Application
+
This example gives an overview of DLT usage inside an application by using a minimal code example. Detailed information about the API can be found later in this document.
```
@@ -41,43 +39,51 @@ int main()
}
```
-DLT is quite easy to use. The first thing a developer has to do is to include the dlt header file. DLT contexts can be statically declared using the macro shown in next line.
-Firstly, a DLT application has to be registered inside the main function. For this, an application identifier APID and application description has to be specified. Afterwards, one or more DLT contexts could be specified.
+DLT is quite easy to use. The first thing a developer has to do is to include the dlt header file. DLT contexts can be statically declared using the macro shown in next line.
+Firstly, a DLT application has to be registered inside the main function. For this, an application identifier APID and application description has to be specified. Afterwards, one or more DLT contexts could be specified.
To log messages in verbose mode, the DLT_LOG macro can be used. As parameter, the logging context, the log level and a variable list of parameters have to be specified. DLT requires each parameter to be strongly typed using DLT type macros. In this example, DLT_CSTRING is used to specify a constant string.
-On application cleanup, all DLT contexts, as well as the DLT application have to be unregistered.
+On application cleanup, all DLT contexts, as well as the DLT application have to be unregistered.
## General Rules for Logging
+
### Be Smart
+
Before implementing logging in code one should take a second to think about a concept first. Often strategic places in the software can be used as a central place for logging. Such places are often interfaces to other SW components. Use the solution with the smallest impact. Avoid logging the “good cases” but log e.g. in your error handling sections – you will need error handling anyway. In case an error occurred more logs don’t matter as long as your regular code produces little logs. Keep in mind that tracing comes with a price tag – you are working in an embedded environment where CPU, memory and Bandwidth are sparse.
+
### Avoid high frequency outputs
+
Certain events occur very often in a system – some of them dozens of times per second. In such a case do not implement logging for each occurrence. One example is the screen frame rate. Instead of printing a log for each frame rate aggregate the information and print an average once every five seconds or – even better – report once a second if the frame rate is below a critical value.
+
### Combine multiple messages
+
Please always consider that each Log message creates a certain overhead. In case of DLT as the way of logging each has a header of 20 bytes. Therefore please aggregate information. In this way all necessary information is always combined.
Please always use a human readable format; use identifiers for the different values, be consistent with separators. This helps to work with the data, especially when log messages are processed by scripts.
Such scripts often use regular expressions – make the job easier!
For example don’t write log entries like this:
-```
-Total frames: 1000
-Sync frames: 0
-Reem frames: 0
-Valid frames: 100
-Urgent frames: 0
-```
+
+> Total frames: 1000
+> Sync frames: 0
+> Reem frames: 0
+> Valid frames: 100
+> Urgent frames: 0
Better aggregate Information into a single message:
-```
-Frame info: total=1000, sync=0, reem=1000, valid=0, urgent=1
-```
+
+> Frame info: total=1000, sync=0, reem=1000, valid=0, urgent=1
### Do not use ASCII-art
+
Information should be “on your fingertips”. Logging is a tool to ease crushing bugs, not to win a computer art contest. → Don’t use ASCII Art!
### Do not create charts using ASCII
+
Charts can be a great help to visualize what is going on in the system. This type can be nicely done by a trace analysis or in case of usage of the DLT Viewer, in a Plugin. It certainly should always be done in a post processing step. Doing this on the target is a waste of resources.
### Avoid tracing in loops
+
Bad example:
+
```
for(int index=0; index<MAX; index++)
{
@@ -85,7 +91,9 @@ for(int index=0; index<MAX; index++)
/* ... */
}
```
+
Good example:
+
```
for(int index=0; index<MAX; index++)
{
@@ -96,6 +104,7 @@ LOG("Loop count: %d", index);
```
### Other do and avoids
+
Topic | Description
--- | ---
Avoid timestamps | Do not include a timestamp in your log messages. In case of DLT the logging system itself already provides a timestamp.
@@ -109,7 +118,9 @@ Do not log to the console | Do not use _printf()_ or similar statements to trace
Do “macrotize” dlt macros | Don’t write your own macros to capsulate DLT macros.
## The use of Log Levels
+
### Overview
+
The following log levels are available in DLT:
Log Level | Description
@@ -125,92 +136,113 @@ Please be aware the the default Log Level is set to INFO: This means message whi
Hint: The default Log Level can be changed by setting an environment variable (see DLT Library - runtime configuration).
### What to log at FATAL level
+
Fatal errors are the most serious error and should be very rare. They are, for example:
-- Errors that cause the whole system to fail
-- A corrupted boot environment which prevents system boot
-- A critical hardware component is missing, failing or is preventing start-up.
-- When your software/process/component exits due to a fatal error. Log the EXIT and the reason.
-- Failure of a major critical component to start
+
+- Errors that cause the whole system to fail
+- A corrupted boot environment which prevents system boot
+- A critical hardware component is missing, failing or is preventing start-up.
+- When your software/process/component exits due to a fatal error. Log the EXIT and the reason.
+- Failure of a major critical component to start
### What to log at ERROR level
+
This level is reserved for errors which impact the correct functionality of the system or its components. Errors related to connected customer devices such as phones should be logged at INFO level. Error level logs may be:
-- A non-critical component is failing or cannot be found
-- A system component is crashing
-- A system essential file can’t be read or written
-- Detection of corrupted network messages, files, etc. when these impact correct
-- Some major functionality could not be provided (e.g. the route in the navigation could not be calculated)
-- When your software/process/component exits due to an error. Log the EXIT and reason
+
+- A non-critical component is failing or cannot be found
+- A system component is crashing
+- A system essential file can’t be read or written
+- Detection of corrupted network messages, files, etc. when these impact correct
+- Some major functionality could not be provided (e.g. the route in the navigation could not be calculated)
+- When your software/process/component exits due to an error. Log the EXIT and reason
### What to log at WARNING level
+
This level must be used for problems where a correct behavior cannot be ensured, i.e. problems that could affect the correct functionality of the system or its components. Warnings related to connected customer devices such as phones must be logged at INFO level. Examples for warning log messages could be: DLT dropping logs
-- No disk space available for core dump
-- Audio stream packet dropped
-- If a process of calculation takes longer than the time allowed in specification e.g. Calculation of route in the navigation takes longer than allowed
+
+- No disk space available for core dump
+- Audio stream packet dropped
+- If a process of calculation takes longer than the time allowed in specification e.g. Calculation of route in the navigation takes longer than allowed
### What to log at INFO level
+
This level is reserved for key information and high-level events which are not errors or warnings of the system itself or of connected consumer devices.
-- Start and non-error related stop of software components. Include version information in start log.
-- Detection of key hardware components. Include key HW information in log.
-- Customer device connected. Include key device and media info.
-- Customer device detached or connection lost.
-- Failure to connect to customer device. Include reason
-- Corrupted disk, song, photo, etc. on customer device.
-- Key system/HW information at start-up
-- Information needed for reproducing and understanding user activity
-- Information for reproducing the environment (Large volume data such as GPS traces should be logged at a reasonable rate. Especially with very frequent logs it should be taken care of that no redundancy occurs)
-- Key information used for KPI (Key performance index) reporting
+
+- Start and non-error related stop of software components. Include version information in start log.
+- Detection of key hardware components. Include key HW information in log.
+- Customer device connected. Include key device and media info.
+- Customer device detached or connection lost.
+- Failure to connect to customer device. Include reason
+- Corrupted disk, song, photo, etc. on customer device.
+- Key system/HW information at start-up
+- Information needed for reproducing and understanding user activity
+- Information for reproducing the environment (Large volume data such as GPS traces should be logged at a reasonable rate. Especially with very frequent logs it should be taken care of that no redundancy occurs)
+- Key information used for KPI (Key performance index) reporting
### What to log at DEBUG level
+
This level should be used for debug information that can help developers debug the functionality of their software. For example:
-- Information about entering and exiting major procedures
-- Values of key variables, but not dumps of arrays and large number of variables
-- Information about events received
-- Network connection information
-- Debug relevant information about hardware
+
+- Information about entering and exiting major procedures
+- Values of key variables, but not dumps of arrays and large number of variables
+- Information about events received
+- Network connection information
+- Debug relevant information about hardware
### What to log at VERBOSE level
+
This level is the most detailed level and should be used for in depth debug information that can help developers debug the functionality of their software. For example:
-- Detailed trace information
-- Dumps of a large number of variables, dumps of arrays and structures
-- Detailed information about events received, even events that happen very frequently
-- Detailed network connection information
-- Detailed hardware information
-- Information about loops and iterations
+
+- Detailed trace information
+- Dumps of a large number of variables, dumps of arrays and structures
+- Detailed information about events received, even events that happen very frequently
+- Detailed network connection information
+- Detailed hardware information
+- Information about loops and iterations
## DLT Library Runtime Configuration
+
The DLT library can be configured at runtime – globally or for a specific process – by setting different environment variables. In the following, these environment variables are described:
+
### Initial Log level
-The default log level of DLT User library is DLT_LOG_INFO. This can be changed using a DLT client application (e.g. DLT Viewer). But there might be situations where DEBUG or VERBOSE messages are needed before the DLT Daemon updated the user library.
-In this case DLT_INITIAL_LOG_LEVEL can be exported. Using this environment variable, the user can specify log level for contexts that will be used on library startup.
+
+The default log level of DLT User library is DLT_LOG_INFO. This can be changed using a DLT client application (e.g. DLT Viewer). But there might be situations where DEBUG or VERBOSE messages are needed before the DLT Daemon updated the user library.
+
+In this case DLT_INITIAL_LOG_LEVEL can be exported. Using this environment variable, the user can specify log level for contexts that will be used on library startup.
+
For example, an application “EXA1” has two contexts “CON1” and “CON2”. For “CON1” log level DEBUG and for “CON2” log level VERBOSE shall be used. The following has to be exported to configure the library:
-```
- export DLT_INITIAL_LOG_LEVEL=”EXA1:CON1:5;EXA1:CON2:6”
-```
+
+> export DLT_INITIAL_LOG_LEVEL=”EXA1:CON1:5;EXA1:CON2:6”
### Local print mode
+
Sometimes it might be useful to print DLT messages for debugging directly to console. To force the library to do so, the following environment variable can be exported:
-```
-export DLT_LOCAL_PRINT_MODE=FORCE_ON
-```
+
+> export DLT_LOCAL_PRINT_MODE=FORCE_ON
+
+
### Library buffer size
+
The DLT library contains a message buffer in case the DLT Daemon is not started yet or the connection to DLT Daemon is temporarily lost. The buffer is allocated while library initialization with a minimum size. If more messages need to be stored, the buffer grows in defined steps up to a maximum size. In case messages are flushed to DLT Daemon, the buffer is reduced to its minimal size. The default values and the environment variable names to set these values are described below:
-| | Default value [in bytes] | Environment variable name
+| | Default value [in bytes] | Environment variable name
--- | --- | ---
Minimal size | 50000 | DLT_USER_BUFFER_MIN
Maximal size | 500000 | DLT_USER_BUFFER_MAX
Step size | 50000 | DLT_USER_BUFFER_STEP
For example, to limit the maximum buffer size to 250k bytes, the following can be exported:
-```
-export DLT_USER_BUFFER_MAX=250000
-```
+
+> export DLT_USER_BUFFER_MAX=250000
## DLT API Usage
### Register application
-**Important note**: If the application uses _fork()_, DLT_REGISTER_APP may not be called before fork().
+
+**Important note**: If the application uses _fork()_, DLT_REGISTER_APP may not be called before fork().
+
The DLT application has to be registered as early as possible during the initialization of the application by calling DLT_REGISTER_APP(). It is only allowed to call DLT_REGISTER_APP() once per application. An application id (maximum four characters) has to be specified and must be unique within an ECU. In this example "MAPP" is used. And also a description for the application can be specified, here it is "Test Application for Logging".
+
```
int main(int argc, const char* argv[])
{
@@ -221,20 +253,27 @@ int main(int argc, const char* argv[])
DLT_REGISTER_APP is asynchronous. It may take some milliseconds to establish the IPC channel. Because of this, messages might be lost if logs are emitted immediately after registering. Typically this is not a problem, but may arise especially with simple examples.
### Define and register all logging contexts
+
As many contexts as needed can be defined. These contexts can be declared as contexts in different C or CPP files. But each context is only allowed to be declared once. Therefore a unique variable name for each context has to be used.
+
```
DLT_DECLARE_CONTEXT(myContext1);
DLT_DECLARE_CONTEXT(myContext2);
DLT_DECLARE_CONTEXT(myContext3);
```
+
If contexts from another C or CPP file shall be used, these contexts can be imported by calling:
+
```
DLT_IMPORT_CONTEXT(myContext1);
DLT_IMPORT_CONTEXT(myContext2);
DLT_IMPORT_CONTEXT(myContext3);
```
+
After the application is registered and contexts are declared, contexts need to be registered early during initialization of the application. DLT_REGISTER_CONTEXT() shall not be called before DLT_REGISTER_APP().
+
During registration of each context, a context id must be provided (maximum four characters long). In this example "TESX" is used. Also a description for the context can be provided; here it is "Test Context X for Logging". A context can also be registered with a predefined Log Level and Trace Status by using the Macro DLT_REGISTER_CONTEXT_LL_TS. The third context is registered using this method.
+
```
int main(int argc, const char* argv[])
{
@@ -247,7 +286,9 @@ int main(int argc, const char* argv[])
```
### Unregister contexts and application
+
Before terminating the application registered contexts and at last the application need to be unregistered.
+
```
int main(int argc, const char* argv[])
{
@@ -264,13 +305,17 @@ int main(int argc, const char* argv[])
```
### Logging command
+
DLT provides functions and macros for logging, whereas the interface for Verbose and Non-Verbose differs. The following table shows an example of all 4 types for logging using a constant string and an integer.
#### Verbose vs. Non-Verbose API
+
The following table shows an example of all 4 types for logging e.g. a string and an integer.
##### MACRO
+
###### Verbose
+
```DLT_LOG(ctx, DLT_LOG_INFO, DLT_STRING("ID: "), DLT_UINT32(123));```
###### Non-Verbose
@@ -316,13 +361,16 @@ else {
```
##### Switching Verbose and Non-Verbose
+
To switch Verbose/Non-Verbose mode (Verbose mode is default), the following APIs are available:
+
```
DLT_VERBOSE_MODE();
DLT_NONVERBOSE_MODE();
```
### Logging parameters
+
The following parameter types can be used. Multiple parameters can be added to a single log message. The size of all logging parameters together should not exceed 1390 bytes, including the DLT message header.
Type | Description
@@ -353,6 +401,7 @@ DLT_BIN16(UINT_VAR | 16 Bit binary value
DLT_PTR(PTR_VAR) | Architecture independent macro to print pointers
### DLT C++ Extension
+
Important note: By default, C++ Extension is disabled in ADIT platform. It can be enabled by setting the CMake option: *WITH_DLT_CXX11_EXT=ON*.
The DLT C++ extension was added to DLT in version 2.13 . This approach solves the need to specify the type of each argument for applications written in C++ by using C++ templates and function overloading. The following shows the usage of this API extension:
@@ -360,12 +409,12 @@ The DLT C++ extension was added to DLT in version 2.13 . This approach solves th
#define DLT_LOG_CXX(CONTEXT, LOGLEVEL, ...)
#define DLT_LOG_FCN_CXX(CONTEXT, LOGLEVEL, ...)
-
DLT_LOG_CXX(ctx, DLT_LOG_WARN, 1.0, 65);
DLT_LOG_FCN_CXX(ctx, DLT_LOG_WARN, "Test String", 145, 3.141);
```
This works as well with C++ standard containers like std::vector, std::map, std::list. Of course, the logToDlt function can be overloaded to print user defined structures or classes.
+
```
struct MyStruct
{
@@ -397,32 +446,35 @@ inline int logToDlt(DltContextData & log, MyStruct const & value)
```
### Check if a specific Log Level is enabled
+
In some scenarios it might be necessary to check if a specific Log Level is enabled or not, before log data is send to DLT Library. The macro is defined as follows:
-DLT_IS_LOG_LEVEL_ENABLED(CONTEXT,LOGLEVEL)
+
+> DLT_IS_LOG_LEVEL_ENABLED(CONTEXT,LOGLEVEL)
+
In general, there is no need to check the active Log Level to decide if a log message can be send to not. This is handled inside the DLT_LOG macro.
## DLT Injection Messages
+
DLT provides an interface to register injection callbacks which can be sent by a DLT Client (e.g. DLT Viewer) to the application. An injection message callback is always registered for a specific context. The API to register a callback is defined as follows:
-```
-DLT_REGISTER_INJECTION_CALLBACK(CONTEXT, SERVICEID, CALLBACK);
-```
+> DLT_REGISTER_INJECTION_CALLBACK(CONTEXT, SERVICEID, CALLBACK);
Injection message Service IDs must be bigger than 0xFFF, because IDs up to 0xFFF are reserved for DLT Daemon control messages.
The callback function needs to have the following definition:
-```
-int injection_callback(uint32_t service_id, void *data, uint32_t length);
-```
+
+> int injection_callback(uint32_t service_id, void *data, uint32_t length);
+
For example, registering a callback function for a specific context with the service ID 0x1000 might look like:
-```
-DLT_REGISTER_INJECTION_CALLBACK(mycontext, 0x1000, injection_callback);
-```
+
+
+> DLT_REGISTER_INJECTION_CALLBACK(mycontext, 0x1000, injection_callback);
+
From DLT Viewer, an injection message can be sent by right-clicking the corresponding context in the project view (“Send injection”). A dialog will pop up to specify the injection data as shown below.
![alt text](images/dlt-viewer-send-injection-dialog.png "DLT Viewer Send Injection Callback")
## Log level changed callback
+
A callback function can be registered to be called whenever the Log Level of a context changed. The usage is similar to DLT_REGISTER_INJECTION_CALLBACK.
-```
-DLT_REGISTER_LOG_LEVEL_CHANGED_CALLBACK(CONTEXT, CALLBACK)
-``` \ No newline at end of file
+
+> DLT_REGISTER_LOG_LEVEL_CHANGED_CALLBACK(CONTEXT, CALLBACK)
diff --git a/doc/dlt_kpi.md b/doc/dlt_kpi.md
new file mode 100644
index 0000000..10d684a
--- /dev/null
+++ b/doc/dlt_kpi.md
@@ -0,0 +1,97 @@
+# DLT KPI
+
+Back to [README.md](../README.md)
+
+## Overview
+
+*DLT KPI* is a tool to provide log messages about **K**ey **P**erformance **I**ndicators to the DLT Daemon. The log message format is designed to be both readable by humans and to be parsed by DLT Viewer plugins.
+The information source for the dlt-kpi tool is the /proc file system.
+
+## Message format
+
+*DLT KPI* logs its messages as human readable ASCII messages, divided in multiple arguments. The tool will log messages in user defined intervals, which can be set in the configuration file dlt-kpi.conf.
+
+## Identifiers and their datasets:
+
+The logged messages always start with a three character long identifier as first argument. After this identifier, they can contain multiple datasets separated in the remaining arguments. The datasets contain information separated by semicolons. The order and meaning of those information chunks is defined below.
+
+The following will explain the meaning to each three-character-identifier and each information chunk of the datasets associated with this identifier. The example messages all contain only one dataset - in real use, many messages will contain multiple datasets (one per argument).
+
+*NOTE:* Arguments are delimited by spaces when shown in ASCII, but dlt-viewer plugins can easily access each argument separately by certain methods, which makes arguments useful for parsing.
+
+*NEW*: This identifies a message that contains datasets describing newly created processes.
+
+The datasets in these messages have the following form:
+
+> \[PID\];\[Parent PID\];\[Commandline\]
+
+Example message:
+
+> NEW 21226;1;/usr/libexec/nm-dispatcher
+
+*STP*: This identifies a message that contains datasets describing processes that have ended since the last interval.
+
+The datasets in these messages have the following form:
+
+\[PID\]
+
+Example message:
+
+> STP 20541
+
+*ACT*: This identifies a message that contains datasets describing active processes. These are processes that have consumed CPU time since the last interval.
+
+The datasets in these messages have the following form:
+
+> \[PID\];\[CPU time in milliseconds per second\];\[RSS bytes\];\[CTX-switches since last interval\];\[I/O bytes\];\[I/O wait time in milliseconds per second\]
+
+Example message:
+
+> ACT 20503;10;389;3;1886649;0
+
+NOTE: The *CPU time* value is the active time of a process in milliseconds, divided by the number of CPU cores. So this value should never get greater than 1000ms, which would mean 100% CPU usage.
+
+*CHK*: This identifies a message that is logged for each process in a certain interval. These messages can be used to get a list of currently existing processes and to keep a plugin, that tracks running processes, up to date if messages were lost or if the commandlines have changed.
+
+The datasets in these messages have the following form:
+
+> \[PID\];\[Commandline\]
+
+Example message:
+
+> CHK 660;/sbin/audispd
+
+*IRQ*: This identifies a message that contains datasets describing the numbers of interrupts that occurred on each CPU.
+
+The datasets in these messages have the following form:
+
+> \[IRQ name\];cpu\[CPU number\];\[Number of total interrupts\];
+
+Example message:
+
+> IRQ 0;cpu0:133;cpu1:0; 1;cpu0:76827;cpu1:0;
+
+Synchronization messages:
+
+Because the messages can get too long for logging and segmented network messages don't allow for individually set arguments, the datasets can be splitted into multiple messages of the same type (i.e. they have the same identifier). This can make it difficult for an observer (human or machine) to keep track of currently valid information. For example, one can't be sure if a process is part of the list of currently active processes or not, or if this message was part of an older interval that simply arrived too late. So, to correctly associate these messages to each other, each group of potentially "segmented" messages is surrounded by two synchronization messages which start with the same identifier, followed by the codes _BEG_ (for the opening sync message) or _END_ (for the closing sync message). Synchronization messages do not contain datasets.
+
+Example (Messages have been shortened for simplicity):
+
+```c
+ACT BEG
+ACT 21768;10;417;3;672075;0 19284;20;15857;303654;22932174;0 1826;20;39781;4404293;154392870;0
+ACT 1635;10;10696;8412557;375710810;0 990;10;22027;1176631;0;0
+ACT END
+```
+
+Only processes that are part of this group are active at this moment. *ACT* messages that came before this message-group are invalid now.
+
+It can also happen that, between a *BEG* and an *END* sync message, there are messages of other types. So, plugins should not expect these message groups to always be a "solid block", but react on each message individually and dynamically, and store the logged information until the closing *END* message arrives.
+
+## AUTHOR
+
+Sven Hassler <Sven_Hassler (at) mentor (dot) com>
+
+## COPYRIGHT
+
+Copyright (C) 2015 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 <http://mozilla.org/MPL/2.0/>.
diff --git a/doc/dlt_kpi.txt b/doc/dlt_kpi.txt
deleted file mode 100644
index 384ba7b..0000000
--- a/doc/dlt_kpi.txt
+++ /dev/null
@@ -1,145 +0,0 @@
-////
-# SPDX license identifier: MPL-2.0
-#
-# Copyright (C) 2011-2015, BMW AG
-#
-# This file is part of GENIVI Project DLT - Diagnostic Log and Trace.
-#
-# This Source Code Form is subject to the terms of the
-# Mozilla Public License (MPL), v. 2.0.
-# If a copy of the MPL was not distributed with this file,
-# You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# For further information see http://www.genivi.org/.
-////
-
-DLT KPI
-=======
-Sven Hassler <Sven_Hassler@mentor.com>
-0.0.1, 14th December 2015: Initial version
-
-image::images/genivi_chrome_1_transparent.png[width=128]
-
-Overview
---------
-_DLT KPI_ is a tool to provide log messages about **K**ey **P**erformance **I**ndicators to the DLT Daemon. The log message format is designed to be both readable by humans and to be parsed by DLT Viewer plugins.
-The information source for the dlt-kpi tool is the /proc file system.
-
-
-Message format
---------------
-_DLT KPI_ logs its messages as human readable ASCII messages, divided in multiple arguments. The tool will log messages in user defined intervals, which can be set in the configuration file dlt-kpi.conf.
-
-Identifiers and their datasets:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The logged messages always start with a three character long identifier as first argument. After this identifier, they can contain multiple datasets separated in the remaining arguments. The datasets contain information separated by semicolons. The order and meaning of those information chunks is defined below. +
-The following will explain the meaning to each three-character-identifier and each information chunk of the datasets associated with this identifier. The example messages all contain only one dataset - in real use, many messages will contain multiple datasets (one per argument).
-
-[NOTE]
-Arguments are delimited by spaces when shown in ASCII, but dlt-viewer plugins can easily access each argument separately by certain methods, which makes arguments useful for parsing.
-
-* *NEW*
-+
-This identifies a message that contains datasets describing newly created processes.
-+
-The datasets in these messages have the following form:
-+
-----
-[PID];[Parent PID];[Commandline]
-----
-+
-====
-Example message:
-----
-NEW 21226;1;/usr/libexec/nm-dispatcher
-----
-====
-
-* *STP*
-+
-This identifies a message that contains datasets describing processes that have ended since the last interval.
-+
-The datasets in these messages have the following form:
-+
-----
-[PID]
-----
-+
-====
-Example message:
-----
-STP 20541
-----
-====
-
-* *ACT*
-+
-This identifies a message that contains datasets describing active processes. These are processes that have consumed CPU time since the last interval.
-+
-The datasets in these messages have the following form:
-+
-----
-[PID];[CPU time in milliseconds per second];[RSS bytes];[CTX-switches since last interval];[I/O bytes];[I/O wait time in milliseconds per second]
-----
-+
-====
-Example message:
-----
-ACT 20503;10;389;3;1886649;0
-----
-====
-+
-[NOTE]
-The _CPU time_ value is the active time of a process in milliseconds, divided by the number of CPU cores. So this value should never get greater than 1000ms, which would mean 100% CPU usage.
-
-* *CHK*
-+
-This identifies a message that is logged for each process in a certain interval. These messages can be used to get a list of currently existing processes and to keep a plugin, that tracks running processes, up to date if messages were lost or if the commandlines have changed.
-+
-The datasets in these messages have the following form:
-+
-----
-[PID];[Commandline]
-----
-+
-====
-Example message:
-----
-CHK 660;/sbin/audispd
-----
-====
-
-* *IRQ*
-+
-This identifies a message that contains datasets describing the numbers of interrupts that occurred on each CPU.
-+
-The datasets in these messages have the following form:
-+
-----
-[IRQ name];cpu[CPU number];[Number of total interrupts];
-----
-+
-====
-Example message:
-----
-IRQ 0;cpu0:133;cpu1:0; 1;cpu0:76827;cpu1:0;
-----
-====
-
-Synchronization messages:
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Because the messages can get too long for logging and segmented network messages don't allow for individually set arguments, the datasets can be splitted into multiple messages of the same type (i.e. they have the same identifier). This can make it difficult for an observer (human or machine) to keep track of currently valid information. For example, one can't be sure if a process is part of the list of currently active processes or not, or if this message was part of an older interval that simply arrived too late. So, to correctly associate these messages to each other, each group of potentially "segmented" messages is surrounded by two synchronization messages which start with the same identifier, followed by the codes _BEG_ (for the opening sync message) or _END_ (for the closing sync message). Synchronization messages do not contain datasets.
-
-Example (Messages have been shortened for simplicity):
-
-----
-ACT BEG
-ACT 21768;10;417;3;672075;0 19284;20;15857;303654;22932174;0 1826;20;39781;4404293;154392870;0
-ACT 1635;10;10696;8412557;375710810;0 990;10;22027;1176631;0;0
-ACT END
-----
-
-Only processes that are part of this group are active at this moment. _ACT_ messages that came before this message-group are invalid now. +
-It can also happen that, between a _BEG_ and an _END_ sync message, there are messages of other types. So, plugins should not expect these message groups to always be a "solid block", but react on each message individually and dynamically, and store the logged information until the closing _END_ message arrives.
diff --git a/doc/dlt_multinode.txt b/doc/dlt_multinode.txt
deleted file mode 100644
index c7bdee5..0000000
--- a/doc/dlt_multinode.txt
+++ /dev/null
@@ -1,80 +0,0 @@
-DLT MultiNode
-=============
-Christoph Lipka <clipka@jp.adit-jv.com>
-0.0.1, 2016/10/19 Initial Version
-
-Overview
---------
-
-MultiNode allows to connect DLT Daemons running on different operating systems, e.g. in a virtualized environment.
-The central component is the Gateway DLT Daemon which connects external DLT Clients, like the DLT Viewer running on a host computer with Passive DLT Daemons running on nodes without a physical connection to external DLT clients.
-All communication between passive nodes and DLT Viewer has to be send via the Gateway node. The Gateway node forwards log messages coming from passive nodes to all connected DLT clients.
-The Gateway DLT Daemon also forwards command and control requests coming from DLT clients to the corresponding passive node.
-
-Precondition
-------------
-The dlt.conf configuration file which is read by each DLT Daemon on start-up contains an entry to specify the ECU identifier (node identifier).
-It has to be ensured, that each DLT Daemon in the System has a unique ECU identifier specified.
-The ECU identifier is included in every DLT Message and is used to distinguish if a DLT message has to be forwarded to a passive node or handled by the Gateway DLT Daemon itself.
-
-Configuration
--------------
-The dlt.conf configuration file provides an option to enable the Gateway functionality of a DLT Daemon.
-The default setting is 0 (Off), which means the Gateway functionality is not available.
-
-# Enable Gateway mode (Default: 0)
-GatewayMode = 1
-
-Gateway Configuration File
---------------------------
-The MultiNode configuration file has to be loaded by the Gateway DLT Daemon during startup.
-----
-[PassiveNode1]
-; IP Address. (Mandatory)
-IPaddress = 192.168.2.32
-; TCP port. Default 3490 is used if no port is specified
-Port = 3495
-; Passive node ECU identifier. (Mandatory)
-EcuID = ECU2
-; Connection to passive node only on demand. Default ‘OnStartup’ if not specified
-Connect = OnDemand
-; timeout in seconds
-Timeout = 10
-; Send following control messages after connection is established
-SendControl=0x03, 0x13
-; Send SerialHeader with control messages. Value in dlt.conf is used
-; as default if not specified
-SendSerialHeader=1
-----
-The configuration file is written in an INI file format and contains information about different connected passive nodes.
-Each passive node’s connection parameters are specified in a unique numbered separate section ([PassiveNode{1,2, …N}]).
-Because TCP is the only supported communication channel, the IPaddress and Port of the Passive 682 DLT Daemon has to be specified.
-
-With the Connect property it is possible to specify when the Gateway DLT Daemon shall connect to the passive node.
-The following values are allowed:
- - OnStartup
- The Gateway DLT Daemon tries to connect to the Passive DLT Daemon immediately after the Gateway DLT Daemon is started.
- - OnDemand
- The Gateway DLT Daemon tries to connect to the Passive DLT Daemon when it receives a connection request.
-
-The Timeout property specifies the time after which the Gateway DLT Daemon stops connecting attempts to a Passive DLT Daemon.
-If the connection is not established within the specified time, the Gateway DLT Daemon gives up connecting attempts and writes an error messages to its internal log.
-The following control messages are supported to be send to a passive node automatically after connection is established:
- - 0x03: Get Log Info
- - 0x13: Get Software Version
-
-Using dlt-passive-node control application
-------------------------------------------
-
-----
-Usage: dlt-passive-node-ctrl [options]
-Send a trigger to DLT daemon to (dis)connect a passive node or get current passive node status.
-
-Options:
- -c Connection status (1 - connect, 0 - disconnect)
- -h Usage
- -n passive Node identifier (e.g. ECU2)
- -s Show passive node(s) connection status
- -t Specify connection timeout (Default: 10s)
- -v Set verbose flag (Default:0)
-----
diff --git a/doc/dlt_offline_logstorage.txt b/doc/dlt_offline_logstorage.txt
deleted file mode 100644
index 1673dfe..0000000
--- a/doc/dlt_offline_logstorage.txt
+++ /dev/null
@@ -1,214 +0,0 @@
-DLT Offline Logstorage
-======================
-Christoph Lipka <clipka@jp.adit-jv.com>
-0.0.2, 2016/10/19 Updated Version
-
-Overview
---------
-DLT is a reusable open source software component for standardized logging and tracing in infotainment ECUs based on the AUTOSAR 4.0 standard.
-The goal of DLT is the consolidation of the existing variety of logging and tracing protocols on one format.
-
-
-Introduction to DLT Offline Logstorage
---------------------------------------
-Logstorage is a mechanism to store DLT logs on the target system or an external device (e.g. USB stick) connected to the target.
-It can be seen as an improvement of the Offline Trace functionality which is already part of DLT.
-
-Logstorage provides the following features:
- - Store logs in sets of log files defined by configuration files
- - Log file content is configurable
- - Configurable options are:
- - Application identifier (single entry, list, wildcard)
- - Context identifier (single entry, list, wildcard)
- - Log level
- - ECU identifier
- - Log files are configurable in terms of:
- - File name and naming scheme
- - File size
- - Number of files
- - Log message synchronization strategy is configurable
- - Trigger start and stop logging using a control application
- - Integration into Udev device management
-
-
-Filter configuration
---------------------
-For DLT daemon to store logs the configuration file named “dlt_logstorage.conf” should be present in external storage or internal storage device.
-The format is defined as follows:
-----
-[Filter<unique number>] # filter configration name
-LogAppName=<APID> # Name of application to store logs from. Multiple applications can be separated by "," and ".*" denotes all applications
-ContextName=<CTID> # Name or names of contexts to store logs from. Multiple contexts can be separated by "," and ".*" denotes all contexts of the application
-LogLevel=<Log level> # Define log level, e.g. DLT_LOG_INFO or DLT_LOG_FATAL
-File=<file name> # Base name of the created files that containing the logs, e.g. "example". For further file naming scheme configurations see man dlt.conf
-FileSize=<file size in bytes> # Maximum file size in bytes
-NOFiles=<number of files> # Number of created files before oldest is deleted and a new one is created
-SyncBehavior=<strategy> # Specify sync strategy. Default: Sync'ed after every message. See Logstorage Rinbuffer Implementation below.
-EcuID=<ECUid> # Specify ECU identifier
-SpecificSize=<spec size in bytes> # Store logs in storage devices after specific size is reached.
-
-----
-The Parameter "SyncBehavior","EcuID" and "SpecificSize" are optional - all others are mandatory.
-*Note*: Not allowed is the combination of wildcards for LogAppName *and* ContextName. The Parameter "SyncBehavior","EcuID" and "SpecificSize" are optional - all others are mandatory. +
-
-An configuration file should look like: +
-
-----
-[FILTER1]
-LogAppName=APP1
-ContextName=CON1,CON2
-LogLevel=DLT_LOG_INFO
-File=App
-FileSize=10000
-NOFiles=10
-
-[FILTER2]
-LogAppName=TEST
-ContextName=.*
-LogLevel=DLT_LOG_ERROR
-File=Test
-FileSize=250000
-NOFiles=5
-EcuID=ECU1
-SyncBehavior=ON_SPECIFIC_SIZE
-SpecificSize=5000
-
-[FILTER3]
-LogAppName=TEST
-ContextName=.*
-LogLevel=DLT_LOG_ERROR
-File=Test
-FileSize=250000
-NOFiles=5
-SyncBehavior=ON_FILE_SIZE,ON_DEMAND
-EcuID=ECU1
-
-----
-
-Filter algorithm
-----------------
-To filter a log message based on information given in the filter configuration a hash table is used. Keys of hash table consist of a combination of application ID and context ID. Since DLT Offline Logstorage supports wildcards and lists of IDs, the following cases have to be considered: +
-Filter configuration contains +
-
-. One application ID (App1) and one context ID (Ctx1): Key = "App1:Ctx1"
-. One application ID (App1), wildcard for context ID: Key = "App1"
-. Wildcard of application ID, One context ID (Ctx1): Key = "Ctx1"
-. Wildcard of application ID, list of context IDs (Ctx1,Ctx2): Keys="Ctx1","Ctx2" and the other way around
-. List of application (App1, App2) and context IDs (Ctx1, Ctx2): all combinations of application ID and context ID are possible. Keys = "App1:Ctx1", "App1:Ctx2", "App2:Ctx1", "App2,Ctx2"
-. Both wildcards for application ID and context ID is not allowed.
-
-Data of a key value pair contains of all information given in OfflineLogstorageConsumerInfoTable apart from application ID and context ID.
-When a message arrives at the filter, three checks have to be done. It has to be checked if:
-
-. The combination of application and context ID is a valid key
-. The application ID is a valid key
-. The context ID is a valid key
-
-If one or more keys are valid the message is stored in the file of the corresponding filter if the log level is lesser than specified (FATAL < ... < INFO < ...).
-If not, the incoming message will be ignored.
-
-Using DLT Offline Logstorage
-----------------------------
-Enable OfflineLogstorage by setting OfflineLogstorageMaxDevices = 1 in dlt.conf.
-Be aware that the performance of DLT may drop if multiple Logstorage devices are used; the performance depends on the write speed of the used device, too.
-
-Create the device folder: +
-
-----
-mkdir -p /var/dltlogs
-----
-
-Create the configuration file and store it on into that folder or mount an external device containing a configuration file.
-
-Start the DLT Daemon. This is not necessary if the DLT Daemon was started already with Offline Logstorage enabled.
-
-Trigger DLT Daemon to use the new logstorage device: +
-
-----
-dlt-logstorage-ctrl -c 1 -p /var/dltlogs
-----
-
-Afterwards, logs that match the filter configuration are stored onto the Logstorage device.
-
-----
-dlt-logstorage-ctrl -c 0 -p /var/dltlogs
-----
-
-Afterwards the configured logstorage device is disconnected from the DLT Daemon.
-
-Using dlt-logstorage-ctrl application
--------------------------------------
-
-----
-Usage: dlt-logstorage-ctrl [options]
-Send a trigger to DLT daemon to connect/disconnect a certain logstorage device
-
-Options:
- -c Connection type: connect = 1, disconnect = 0
- -d[prop] Run as daemon: prop = use proprietary handler
- 'prop' may be replaced by any meaningful word
- -e Set ECU ID (Default: ECU1)
- -h Usage
- -p Mount point path
- -t Specify connection timeout (Default: 10s)
- -v Set verbose flag (Default:0)
-----
-
-Testing DLT Offline Logstorage
-------------------------------
-The following procedure can be used to test Offline Logstorage:
-
-. Enable OfflineLogstorage by setting OfflineLogstorageMaxDevices = 1 in dlt.conf
-
-. Start dlt-daemon
-
-. The default search path of logstorage is: /tmp/dltlogs/dltlogsdevX
- where X is a number in the range [1..OfflineLogstorageMaxDevices]
-
-. Create the device folder
-
- $ mkdir -p /var/dltlog
-
-. Create the configuration file "dlt_logstorage.conf" in this folder
- and define filter configuration(s):
-
- $printf "[FILTER1]
- LogAppName=LOG
- ContextName=TEST
- LogLevel=DLT_LOG_WARN
- File=example
- FileSize=50000
- NOFiles=5" > /tmp/dltlogs/dltlogsdev1/dlt_logstorage.conf
-
-. Trigger dlt-daemon to use a new device
-
- $ dlt-logstorage-ctrl -c 1 -p /var/dltlog
-
-. Start dlt-example-user
-
- $ dlt-example-user Hello123
-
-. After execution, a log file is created in /var/dltlogs
- e.g. example_001_20150512_133344.dlt
-
-. To check the content of the file open it with dlt-convert or DLT Viewer.
-
-Logstorage Ring Buffer Implementation
--------------------------------------
-The DLT Logstorage is mainly used to store a configurable set of logs on an external mass storage device attached to the target.
-In this scenario, writing each incoming log message directly onto the external storage device is appreciate, because the storage device might be un-mounted/suddenly removed at any time.
-Writing each log message immediately avoids the problem of losing too many messages because the file system sync could not be finished before the device has been removed physically from the target.
-On the other hand the DLT Logstorage feature might be used as well to store a configurable set of logs on any internal, nonvolatile memory (e.g. FLASH storage device).
-Due to the reason of limited write cycles of a FLASH device the number of write cycles has to be reduced as much as possible.
-But the drawback of losing log messages in case of an unexpected operating system crash has to be taking into account as well.
-The obvious idea is to cache incoming log messages in memory and write the log data to disk based on a certain strategy.
-Incoming log messages are stored in a data cache with a specific size. Depending on user defined strategy, the data cache is written onto the storage device、without relying on the sync mechanism of the file system.
-
-The following strategies are implemented:
-. ON_MSG - sync every message(Default)
-. ON_DAEMON_EXIT - sync on daemon exit
-. ON_DEMAND - sync on demand
-. ON_FILE_SIZE - sync on file size reached
-. ON_SPECIFIC_SIZE - sync after specific size is reached
- Note : 1.Combinations (not allowed: combinations with ON_MSG,combination of ON_FILE_SIZE with ON_SPECIFIC_SIZE)
- 2.If on_demand sync strategy alone is specified, it is advised to concatenate the log files in sequential order before viewing it on viewer.