diff options
Diffstat (limited to 'implementation/configuration/include/configuration.hpp')
-rw-r--r-- | implementation/configuration/include/configuration.hpp | 93 |
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 |