summaryrefslogtreecommitdiff
path: root/implementation/configuration/include/configuration.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'implementation/configuration/include/configuration.hpp')
-rw-r--r--implementation/configuration/include/configuration.hpp93
1 files changed, 60 insertions, 33 deletions
diff --git a/implementation/configuration/include/configuration.hpp b/implementation/configuration/include/configuration.hpp
index e107e17..ef597e1 100644
--- a/implementation/configuration/include/configuration.hpp
+++ b/implementation/configuration/include/configuration.hpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2017 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
+// 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/.
@@ -19,13 +19,13 @@
#include <vsomeip/defines.hpp>
#include <vsomeip/plugin.hpp>
#include <vsomeip/primitive_types.hpp>
+#include <vsomeip/vsomeip_sec.h>
#include "trace.hpp"
#include "../../e2e_protection/include/e2exf/config.hpp"
#include "e2e.hpp"
-#include "debounce.hpp"
#ifdef ANDROID
#include "internal_android.hpp"
@@ -40,6 +40,7 @@
namespace vsomeip_v3 {
class event;
+struct debounce_filter_t;
class configuration {
public:
@@ -51,6 +52,9 @@ public:
#endif
virtual bool load(const std::string &_name) = 0;
+#ifndef VSOMEIP_DISABLE_SECURITY
+ virtual bool lazy_load_security(const std::string &_client_host) = 0;
+#endif // !VSOMEIP_DISABLE_SECURITY
virtual bool remote_offer_info_add(service_t _service,
instance_t _instance,
std::uint16_t _port,
@@ -67,6 +71,7 @@ public:
virtual const boost::asio::ip::address & get_unicast_address() const = 0;
virtual const boost::asio::ip::address& get_netmask() const = 0;
+ virtual unsigned short get_prefix() const = 0;
virtual const std::string &get_device() const = 0;
virtual diagnosis_t get_diagnosis_address() const = 0;
virtual diagnosis_t get_diagnosis_mask() const = 0;
@@ -76,34 +81,35 @@ public:
virtual bool has_console_log() const = 0;
virtual bool has_file_log() const = 0;
virtual bool has_dlt_log() const = 0;
- virtual const std::string & get_logfile() const = 0;
+ virtual const std::string &get_logfile() const = 0;
virtual logger::level_e get_loglevel() const = 0;
- virtual const std::string & get_routing_host() const = 0;
+ virtual bool is_routing_enabled() const = 0;
+ virtual const std::string &get_routing_host_name() const = 0;
+ virtual const boost::asio::ip::address &get_routing_host_address() const = 0;
+ virtual port_t get_routing_host_port() const = 0;
+
+ virtual const boost::asio::ip::address &get_routing_guest_address() const = 0;
+ virtual std::set<std::pair<port_t, port_t> > get_routing_guest_ports() const = 0;
+
+ virtual bool is_local_routing() const = 0;
virtual std::string get_unicast_address(service_t _service,
instance_t _instance) const = 0;
virtual uint16_t get_reliable_port(service_t _service,
instance_t _instance) const = 0;
- virtual bool has_enabled_magic_cookies(std::string _address,
+ virtual bool has_enabled_magic_cookies(const std::string &_address,
uint16_t _port) const = 0;
virtual uint16_t get_unreliable_port(service_t _service,
instance_t _instance) const = 0;
- virtual major_version_t get_major_version(service_t _service,
- instance_t _instance) const = 0;
- virtual minor_version_t get_minor_version(service_t _service,
- instance_t _instance) const = 0;
- virtual ttl_t get_ttl(service_t _service,
- instance_t _instance) const = 0;
-
virtual void get_configured_timing_requests(
- service_t _service, std::string _ip_target,
+ service_t _service, const std::string &_ip_target,
std::uint16_t _port_target, method_t _method,
std::chrono::nanoseconds *_debounce_time,
std::chrono::nanoseconds *_max_retention_time) const = 0;
virtual void get_configured_timing_responses(
- service_t _service, std::string _ip_service,
+ service_t _service, const std::string &_ip_service,
std::uint16_t _port_service, method_t _method,
std::chrono::nanoseconds *_debounce_time,
std::chrono::nanoseconds *_max_retention_time) const = 0;
@@ -122,6 +128,11 @@ public:
virtual uint8_t get_threshold(service_t _service, instance_t _instance,
eventgroup_t _eventgroup) const = 0;
+ virtual void get_event_update_properties(
+ service_t _service, instance_t _instance, event_t _event,
+ std::chrono::milliseconds &_cycle,
+ bool &_change_resets_cycle, bool &_update_on_change_) const = 0;
+
virtual client_t get_id(const std::string &_name) const = 0;
virtual bool is_configured_client_id(client_t _id) const = 0;
@@ -130,9 +141,7 @@ public:
virtual std::size_t get_io_thread_count(const std::string &_name) const = 0;
virtual int get_io_thread_nice_level(const std::string &_name) const = 0;
virtual std::size_t get_request_debouncing(const std::string &_name) const = 0;
-#ifdef VSOMEIP_HAS_SESSION_HANDLING_CONFIG
virtual bool has_session_handling(const std::string &_name) const = 0;
-#endif // VSOMEIP_HAS_SESSION_HANDLING_CONFIG
virtual std::uint32_t get_max_message_size_local() const = 0;
virtual std::uint32_t get_max_message_size_reliable(const std::string& _address,
@@ -140,7 +149,7 @@ public:
virtual std::uint32_t get_max_message_size_unreliable() const = 0;
virtual std::uint32_t get_buffer_shrink_threshold() const = 0;
- virtual bool supports_selective_broadcasts(boost::asio::ip::address _address) const = 0;
+ virtual bool supports_selective_broadcasts(const boost::asio::ip::address &_address) const = 0;
virtual bool is_offered_remote(service_t _service, instance_t _instance) const = 0;
@@ -188,6 +197,10 @@ public:
virtual void set_configuration_path(const std::string &_path) = 0;
+ virtual std::map<std::string, std::string> get_additional_data(
+ const std::string &_application_name,
+ const std::string &_plugin_name) = 0;
+
//E2E
virtual std::map<e2exf::data_identifier_t, std::shared_ptr<cfg::e2e>> get_e2e_configuration() const = 0;
virtual bool is_e2e_enabled() const = 0;
@@ -199,17 +212,18 @@ public:
virtual uint32_t get_log_status_interval() const = 0;
// TTL factor
- typedef std::uint32_t ttl_factor_t;
- typedef std::map<service_t, std::map<instance_t, ttl_factor_t>> ttl_map_t;
+ using ttl_factor_t = std::uint32_t;
+ using ttl_map_t = std::map<service_t, std::map<instance_t, ttl_factor_t>>;
virtual ttl_map_t get_ttl_factor_offers() const = 0;
virtual ttl_map_t get_ttl_factor_subscribes() const = 0;
// Debouncing
- virtual std::shared_ptr<cfg::debounce> get_debounce(
+ virtual std::shared_ptr<debounce_filter_t> get_debounce(
+ const std::string &_name,
service_t _service, instance_t _instance, event_t _event) const = 0;
// Queue size limit endpoints
- typedef std::uint32_t endpoint_queue_limit_t;
+ using endpoint_queue_limit_t = std::uint32_t;
virtual endpoint_queue_limit_t get_endpoint_queue_limit(
const std::string& _address, std::uint16_t _port) const = 0;
virtual endpoint_queue_limit_t get_endpoint_queue_limit_local() const = 0;
@@ -227,13 +241,13 @@ public:
const boost::asio::ip::address& _address, std::uint16_t _port,
bool _reliable) const = 0;
- typedef std::pair<std::uint16_t, std::uint16_t> port_range_t;
+ using port_range_t = std::pair<std::uint16_t, std::uint16_t>;
virtual void set_sd_acceptance_rule(
const boost::asio::ip::address &_address,
port_range_t _port_range, port_type_e _type,
const std::string &_path, bool _reliable, bool _enable, bool _default) = 0;
- typedef std::map<
+ using sd_acceptance_rules_t = std::map<
boost::asio::ip::address, // other device
std::pair<
std::string, // path to file that determines whether or not IPsec is active
@@ -245,9 +259,7 @@ public:
>
>
>
- > sd_acceptance_rules_t;
- virtual void set_sd_acceptance_rules(const sd_acceptance_rules_t& _rules,
- bool _enable) = 0;
+ >;
virtual sd_acceptance_rules_t get_sd_acceptance_rules() = 0;
virtual void set_sd_acceptance_rules_active(
const boost::asio::ip::address& _address, bool _enable) = 0;
@@ -256,15 +268,19 @@ public:
virtual int get_udp_receive_buffer_size() const = 0;
- virtual bool check_routing_credentials(client_t _client, uint32_t _uid, uint32_t _gid) const = 0;
+ virtual bool check_routing_credentials(client_t _client,
+ const vsomeip_sec_client_t *_sec_client) const = 0;
// SOME/IP-TP
- virtual bool tp_segment_messages_client_to_service(
- service_t _service, std::string _ip_target,
- std::uint16_t _port_target, method_t _method) const = 0;
- virtual bool tp_segment_messages_service_to_client(
- service_t _service, std::string _ip_service,
- std::uint16_t _port_service, method_t _method) const = 0;
+ virtual bool is_tp_client(
+ service_t _service, const std::string &_address, std::uint16_t _port,
+ method_t _method) const = 0;
+ virtual bool is_tp_service(
+ service_t _service, const std::string &_address, std::uint16_t _port,
+ method_t _method) const = 0;
+ virtual void get_tp_configuration(
+ service_t _service, instance_t _instance, method_t _method, bool _is_client,
+ std::uint16_t &_max_segment_length, std::uint32_t &_separation_time) const = 0;
// routing shutdown timeout
virtual std::uint32_t get_shutdown_timeout() const = 0;
@@ -278,6 +294,17 @@ public:
virtual partition_id_t get_partition_id(
service_t _service, instance_t _instance) const = 0;
+
+ virtual reliability_type_e get_reliability_type(
+ const boost::asio::ip::address &_reliable_address,
+ const uint16_t &_reliable_port,
+ const boost::asio::ip::address &_unreliable_address,
+ const uint16_t &_unreliable_port) const = 0;
+
+ // security
+ virtual bool is_security_enabled() const = 0;
+ virtual bool is_security_audit() const = 0;
+ virtual bool is_remote_access_allowed() const = 0;
};
} // namespace vsomeip_v3