summaryrefslogtreecommitdiff
path: root/implementation/configuration/include/internal.hpp.in
blob: 91cd1ee7313bb13f41271687b7fb41235bb32837 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
// Copyright (C) 2014-2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
// This Source Code Form is subject to the terms of the Mozilla Public
// License, 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/.

#ifndef VSOMEIP_V3_INTERNAL_HPP_
#define VSOMEIP_V3_INTERNAL_HPP_

#include <cstdint>
#include <limits>
#include <memory>

#include <vsomeip/primitive_types.hpp>
#include <vsomeip/structured_types.hpp>

#define VSOMEIP_ENV_APPLICATION_NAME            "VSOMEIP_APPLICATION_NAME"
#define VSOMEIP_ENV_CONFIGURATION               "VSOMEIP_CONFIGURATION"
#define VSOMEIP_ENV_CONFIGURATION_MODULE        "VSOMEIP_CONFIGURATION_MODULE"
#define VSOMEIP_ENV_E2E_PROTECTION_MODULE       "VSOMEIP_E2E_PROTECTION_MODULE"
#define VSOMEIP_ENV_MANDATORY_CONFIGURATION_FILES "VSOMEIP_MANDATORY_CONFIGURATION_FILES"
#define VSOMEIP_ENV_LOAD_PLUGINS                "VSOMEIP_LOAD_PLUGINS"
#define VSOMEIP_ENV_CLIENTSIDELOGGING           "VSOMEIP_CLIENTSIDELOGGING"

#define VSOMEIP_DEFAULT_CONFIGURATION_FILE      "@DEFAULT_CONFIGURATION_FILE@"
#define VSOMEIP_LOCAL_CONFIGURATION_FILE        "./vsomeip.json"
#define VSOMEIP_MANDATORY_CONFIGURATION_FILES   "vsomeip_std.json,vsomeip_app.json,vsomeip_events.json,vsomeip_plc.json,vsomeip_log.json,vsomeip_security.json,vsomeip_whitelist.json,vsomeip_policy_extensions.json"

#define VSOMEIP_DEFAULT_CONFIGURATION_FOLDER    "@DEFAULT_CONFIGURATION_FOLDER@"
#define VSOMEIP_DEBUG_CONFIGURATION_FOLDER      "/var/opt/public/sin/vsomeip/"
#define VSOMEIP_LOCAL_CONFIGURATION_FOLDER      "./vsomeip"

#define VSOMEIP_BASE_PATH                       "@VSOMEIP_BASE_PATH@/"

#define VSOMEIP_ROUTING_HOST_PORT_DEFAULT       31490

#ifdef _WIN32
#define VSOMEIP_CFG_LIBRARY                      "vsomeip3-cfg.dll"
#else
#define VSOMEIP_CFG_LIBRARY                      "libvsomeip3-cfg.so.@VSOMEIP_MAJOR_VERSION@"
#endif

#ifdef _WIN32
#define VSOMEIP_SD_LIBRARY                      "vsomeip3-sd.dll"
#else
#define VSOMEIP_SD_LIBRARY                      "libvsomeip3-sd.so.@VSOMEIP_MAJOR_VERSION@"
#endif

#ifdef _WIN32
#define VSOMEIP_E2E_LIBRARY                      "vsomeip3-e2e.dll"
#else
#define VSOMEIP_E2E_LIBRARY                      "libvsomeip3-e2e.so.@VSOMEIP_MAJOR_VERSION@"
#endif

#ifdef _WIN32
#define VSOMEIP_SEC_LIBRARY                      "vsomeip3-sec.dll"
#else
#define VSOMEIP_SEC_LIBRARY                      "libvsomeip3-sec.so"
#endif

#define VSOMEIP_ROUTING_CLIENT                  0

#define VSOMEIP_CLIENT_UNSET                    0xFFFF

#ifdef _WIN32
#define VSOMEIP_INTERNAL_BASE_PORT              51234
#define __func__ __FUNCTION__
#endif

#define VSOMEIP_UNICAST_ADDRESS                 "@VSOMEIP_UNICAST_ADDRESS@"
#define VSOMEIP_NETMASK                         "255.255.255.0"
#define VSOMEIP_PREFIX                          24

#define VSOMEIP_DEFAULT_CONNECT_TIMEOUT         100
#define VSOMEIP_MAX_CONNECT_TIMEOUT             1600
#define VSOMEIP_DEFAULT_CONNECTING_TIMEOUT      100
#define VSOMEIP_DEFAULT_FLUSH_TIMEOUT           1000

#define VSOMEIP_DEFAULT_SHUTDOWN_TIMEOUT        5000

#define VSOMEIP_DEFAULT_QUEUE_WARN_SIZE         102400

#define VSOMEIP_MAX_TCP_CONNECT_TIME            5000
#define VSOMEIP_MAX_TCP_RESTART_ABORTS          5
#define VSOMEIP_MAX_TCP_SENT_WAIT_TIME          10000

#define VSOMEIP_TP_MAX_SEGMENT_LENGTH_DEFAULT   1392

#define VSOMEIP_DEFAULT_BUFFER_SHRINK_THRESHOLD 5

#define VSOMEIP_DEFAULT_WATCHDOG_TIMEOUT        5000
#define VSOMEIP_DEFAULT_MAX_MISSING_PONGS       3

#define VSOMEIP_DEFAULT_UDP_RCV_BUFFER_SIZE     1703936

#define VSOMEIP_IO_THREAD_COUNT                 2
#define VSOMEIP_IO_THREAD_NICE_LEVEL            255

#define VSOMEIP_MAX_DISPATCHERS                 10
#define VSOMEIP_MAX_DISPATCH_TIME               100

#define VSOMEIP_REQUEST_DEBOUNCE_TIME           10
#define VSOMEIP_DEFAULT_STATISTICS_MAX_MSG      50
#define VSOMEIP_DEFAULT_STATISTICS_MIN_FREQ     50
#define VSOMEIP_DEFAULT_STATISTICS_INTERVAL     10000

#define VSOMEIP_DEFAULT_MAX_REMOTE_SUBSCRIBERS  3

#define VSOMEIP_MAX_WAIT_SENT                   5

#define VSOMEIP_LOCAL_CLIENT_ENDPOINT_RECV_BUFFER_SIZE  19

#define VSOMEIP_MINIMUM_CHECK_TTL_TIMEOUT       100
#define VSOMEIP_SETSOCKOPT_TIMEOUT_US           500000  // microseconds

#if defined(__linux__) || defined(ANDROID)
#include <pthread.h>
#endif

#define VSOMEIP_DATA_ID                         0x677D
#define VSOMEIP_DIAGNOSIS_ADDRESS               @VSOMEIP_DIAGNOSIS_ADDRESS@

#define VSOMEIP_DEFAULT_SHM_PERMISSION          0666
#define VSOMEIP_DEFAULT_UDS_PERMISSIONS         0666

#define VSOMEIP_ROUTING_READY_MESSAGE           "@VSOMEIP_ROUTING_READY_MESSAGE@"

namespace vsomeip_v3 {

enum class subscription_state_e {
    SUBSCRIPTION_ACKNOWLEDGED,
    SUBSCRIPTION_NOT_ACKNOWLEDGED,
    IS_SUBSCRIBING
};

const std::uint32_t MESSAGE_SIZE_UNLIMITED = (std::numeric_limits<std::uint32_t>::max)();

const std::uint32_t QUEUE_SIZE_UNLIMITED = (std::numeric_limits<std::uint32_t>::max)();

#define VSOMEIP_DEFAULT_NPDU_DEBOUNCING_NANO         2 * 1000 * 1000
#define VSOMEIP_DEFAULT_NPDU_MAXIMUM_RETENTION_NANO  5 * 1000 * 1000

const std::uint32_t MAX_RECONNECTS_UNLIMITED = (std::numeric_limits<std::uint32_t>::max)();

const std::uint32_t ANY_UID = 0xFFFFFFFF;
const std::uint32_t ANY_GID = 0xFFFFFFFF;

enum class port_type_e {
    PT_OPTIONAL,
    PT_SECURE,
    PT_UNSECURE,
    PT_UNKNOWN
};

using debounce_configuration_t =
    std::map<service_t,
        std::map<instance_t, std::map<event_t, std::shared_ptr<debounce_filter_t>>>>;

using partition_id_t = std::uint8_t;
const partition_id_t VSOMEIP_DEFAULT_PARTITION_ID = 0;

} // namespace vsomeip_v3

#endif // VSOMEIP_V3_INTERNAL_HPP_