summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChristoph Lipka <clipka@jp.adit-jv.com>2015-10-16 16:55:27 +0900
committerLutz Helwing <lutz_helwing@mentor.com>2015-12-07 10:07:26 +0100
commit5acb7dd008a57f6da3bf7b9cf85cfc2c86cac151 (patch)
treeb6ddea5671215bc52b43d69a4b37b8481aa10d23 /include
parent280afb856b74e6089cdd2aa1af7f50c628583475 (diff)
downloadDLT-daemon-5acb7dd008a57f6da3bf7b9cf85cfc2c86cac151.tar.gz
Dlt MultiNode
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. The Gateway DLT Daemon itself acts as a DLT client when connecting to a Passive DLT Daemon. To use the Gateway functionality, it has to be enabled in dlt.conf: GatewayMode = 1 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. It also forwards command and control requests coming from DLT clients to the corresponding passive node. The Gateway DLT Daemon read a configuration file (dlt_gateway.conf) at startup with information about Passive DLT Daemon connections. Afterwards, the Daemon will try to connect to the passive DLT Daemons. If the connection cannot be established after the configured timeout, the Gateway DLT Daemon will give up connecting. The configuration file has to contain the following information about a passive node: [PassiveNode1] IPaddress = 192.168.2.35 Port = 3490 EcuID = ECU2 Connect = OnStartup ; timeout in seconds Timeout = 10 Precondition is, that the passive node is configured with the correct ECU id, ECU2 in this case. If the passive node sends messages with another than configured ECU id, the Gateway DLT Daemon will shut down the connection. It is also possible to connect to a passive DLT daemon using the dlt-passive-node-ctrl application. In this case "Connect=OnDemand" has to be configured in the configuration file. To connect to PassiveNode1, "dlt-passive-node-ctrl -n ECU2 -c 1" has to be executed. With "dlt-passive-node-ctrl -s" the status of passive node connections can be retrieved. Signed-off-by: Christoph Lipka <clipka@jp.adit-jv.com>
Diffstat (limited to 'include')
-rw-r--r--include/dlt/dlt_common.h40
-rw-r--r--include/dlt/dlt_protocol.h2
2 files changed, 42 insertions, 0 deletions
diff --git a/include/dlt/dlt_common.h b/include/dlt/dlt_common.h
index 2083a18..c3a44d1 100644
--- a/include/dlt/dlt_common.h
+++ b/include/dlt/dlt_common.h
@@ -327,6 +327,10 @@ enum {
#define DLT_MOUNT_PATH_MAX 1024
/**
+ * Maximal length of an entry
+ */
+#define DLT_ENTRY_MAX 100
+/**
* The definition of the serial header containing the characters "DLS" + 0x01.
*/
extern const char dltSerialHeader[DLT_ID_SIZE];
@@ -565,6 +569,42 @@ typedef struct
} PACKED DltServiceOfflineLogstorage;
/**
+ * The structure of DLT Service Get Filter Config
+ */
+typedef struct
+{
+ uint32_t service_id; /**< service ID */
+ uint8_t status; /**< response status */
+ char name[DLT_ENTRY_MAX]; /**< config name */
+ uint32_t level; /**< filter level */
+ uint32_t client_mask; /**< client mask */
+ uint32_t ctrl_mask; /**< control message mask */
+ char injections[DLT_ENTRY_MAX]; /**< list of injections */
+} PACKED DltServiceGetCurrentFilterInfo;
+
+/**
+ * The structure of DLT Service Passive Node Connect
+ */
+typedef struct
+{
+ uint32_t service_id; /**< service ID */
+ uint32_t connection_status; /**< connect/disconnect */
+ char node_id[DLT_ID_SIZE]; /**< passive node ID */
+} PACKED DltServicePassiveNodeConnect;
+
+/**
+ * The structure of DLT Service Passive Node Connection Status
+ */
+typedef struct
+{
+ uint32_t service_id; /**< service ID */
+ uint8_t status; /**< response status */
+ uint32_t num_connections; /**< number of connections */
+ uint8_t connection_status[DLT_ENTRY_MAX]; /**< list of connection status */
+ char node_id[DLT_ENTRY_MAX]; /**< list of passive node IDs */
+} PACKED DltServicePassiveNodeConnectionInfo;
+
+/**
* Structure to store filter parameters.
* ID are maximal four characters. Unused values are filled with zeros.
* If every value as filter is valid, the id should be empty by having only zero values.
diff --git a/include/dlt/dlt_protocol.h b/include/dlt/dlt_protocol.h
index 3c8488a..4600d2e 100644
--- a/include/dlt/dlt_protocol.h
+++ b/include/dlt/dlt_protocol.h
@@ -199,6 +199,8 @@
#define DLT_SERVICE_ID_TIMEZONE 0xf03 /**< Service ID: Timezone */
#define DLT_SERVICE_ID_MARKER 0xf04 /**< Service ID: Marker */
#define DLT_SERVICE_ID_OFFLINE_LOGSTORAGE 0xf05 /**< Service ID: Offline log storage */
+#define DLT_SERVICE_ID_PASSIVE_NODE_CONNECT 0xf0E /**< Service ID: (Dis)Connect passive Node */
+#define DLT_SERVICE_ID_PASSIVE_NODE_CONNECTION_STATUS 0xf0F /**< Service ID: Passive Node status information */
#define DLT_SERVICE_ID_CALLSW_CINJECTION 0xFFF /**< Service ID: Message Injection (minimal ID) */
/*