summaryrefslogtreecommitdiff
path: root/implementation/configuration/include
diff options
context:
space:
mode:
Diffstat (limited to 'implementation/configuration/include')
-rw-r--r--implementation/configuration/include/configuration.hpp48
-rw-r--r--implementation/configuration/include/configuration_impl.hpp39
-rw-r--r--implementation/configuration/include/internal.hpp.in10
-rw-r--r--implementation/configuration/include/internal_android.hpp10
-rw-r--r--implementation/configuration/include/service.hpp4
5 files changed, 88 insertions, 23 deletions
diff --git a/implementation/configuration/include/configuration.hpp b/implementation/configuration/include/configuration.hpp
index aac5422..b1dcf5b 100644
--- a/implementation/configuration/include/configuration.hpp
+++ b/implementation/configuration/include/configuration.hpp
@@ -13,7 +13,7 @@
#include <chrono>
#include <boost/asio/ip/address.hpp>
-#include <boost/log/trivial.hpp>
+#include <boost/icl/interval_set.hpp>
#include <vsomeip/export.hpp>
#include <vsomeip/defines.hpp>
@@ -77,7 +77,7 @@ public:
virtual bool has_file_log() const = 0;
virtual bool has_dlt_log() const = 0;
virtual const std::string & get_logfile() const = 0;
- virtual boost::log::trivial::severity_level get_loglevel() const = 0;
+ virtual logger::level_e get_loglevel() const = 0;
virtual const std::string & get_routing_host() const = 0;
@@ -90,6 +90,13 @@ public:
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,
std::uint16_t _port_target, method_t _method,
@@ -207,14 +214,37 @@ public:
virtual std::uint32_t get_max_tcp_restart_aborts() const = 0;
virtual std::uint32_t get_max_tcp_connect_time() const = 0;
- // SD acceptance
- virtual bool sd_acceptance_required(const boost::asio::ip::address& _address,
- std::uint16_t _port) const = 0;
- virtual void set_sd_acceptance_required(
+ // Acceptance handling
+ virtual bool is_protected_device(
+ const boost::asio::ip::address& _address) const = 0;
+ virtual bool is_protected_port(
const boost::asio::ip::address& _address, std::uint16_t _port,
- const std::string& _path, bool _enable) = 0;
- typedef std::map<std::pair<boost::asio::ip::address, std::uint16_t>, std::string> sd_acceptance_required_map_t;
- virtual sd_acceptance_required_map_t get_sd_acceptance_required() = 0;
+ bool _reliable) const = 0;
+
+ typedef std::pair<std::uint16_t, std::uint16_t> port_range_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<
+ boost::asio::ip::address,
+ std::pair<
+ std::string,
+ std::map<
+ bool,
+ std::pair<
+ boost::icl::interval_set<std::uint16_t>,
+ boost::icl::interval_set<std::uint16_t>
+ >
+ >
+ >
+ > 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;
virtual std::uint32_t get_udp_receive_buffer_size() const = 0;
diff --git a/implementation/configuration/include/configuration_impl.hpp b/implementation/configuration/include/configuration_impl.hpp
index f43a97a..e3dc94b 100644
--- a/implementation/configuration/include/configuration_impl.hpp
+++ b/implementation/configuration/include/configuration_impl.hpp
@@ -72,7 +72,7 @@ public:
VSOMEIP_EXPORT bool has_file_log() const;
VSOMEIP_EXPORT bool has_dlt_log() const;
VSOMEIP_EXPORT const std::string & get_logfile() const;
- VSOMEIP_EXPORT boost::log::trivial::severity_level get_loglevel() const;
+ VSOMEIP_EXPORT vsomeip_v3::logger::level_e get_loglevel() const;
VSOMEIP_EXPORT std::string get_unicast_address(service_t _service, instance_t _instance) const;
@@ -81,6 +81,13 @@ public:
VSOMEIP_EXPORT uint16_t get_unreliable_port(service_t _service,
instance_t _instance) const;
+ VSOMEIP_EXPORT major_version_t get_major_version(service_t _service,
+ instance_t _instance) const;
+ VSOMEIP_EXPORT minor_version_t get_minor_version(service_t _service,
+ instance_t _instance) const;
+ VSOMEIP_EXPORT ttl_t get_ttl(service_t _service,
+ instance_t _instance) const;
+
VSOMEIP_EXPORT void get_configured_timing_requests(
service_t _service, std::string _ip_target,
std::uint16_t _port_target, method_t _method,
@@ -191,13 +198,21 @@ public:
VSOMEIP_EXPORT std::uint32_t get_max_tcp_restart_aborts() const;
VSOMEIP_EXPORT std::uint32_t get_max_tcp_connect_time() const;
- VSOMEIP_EXPORT bool sd_acceptance_required(const boost::asio::ip::address& _address,
- std::uint16_t _port) const;
-
- VSOMEIP_EXPORT void set_sd_acceptance_required(
- const boost::asio::ip::address& _address, std::uint16_t _port,
- const std::string& _path, bool _enable);
- VSOMEIP_EXPORT sd_acceptance_required_map_t get_sd_acceptance_required();
+ VSOMEIP_EXPORT bool is_protected_device(
+ const boost::asio::ip::address& _address) const;
+ VSOMEIP_EXPORT bool is_protected_port(
+ const boost::asio::ip::address& _address,
+ std::uint16_t _port, bool _reliable) const;
+
+ VSOMEIP_EXPORT 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);
+ VSOMEIP_EXPORT void set_sd_acceptance_rules(
+ const sd_acceptance_rules_t& _rules, bool _enable);
+ VSOMEIP_EXPORT sd_acceptance_rules_t get_sd_acceptance_rules();
+ VSOMEIP_EXPORT void set_sd_acceptance_rules_active(
+ const boost::asio::ip::address& _address, bool _enable);
VSOMEIP_EXPORT std::uint32_t get_udp_receive_buffer_size() const;
@@ -302,7 +317,8 @@ private:
std::map<event_t, std::shared_ptr<debounce>> &_debounces);
void load_event_debounce_ignore(const boost::property_tree::ptree &_tree,
std::map<std::size_t, byte_t> &_ignore);
- void load_sd_acceptance_required(const configuration_element &_element);
+ void load_acceptances(const configuration_element &_element);
+ void load_acceptance_data(const boost::property_tree::ptree &_tree);
void load_udp_receive_buffer_size(const configuration_element &_element);
bool load_npdu_debounce_times_configuration(
const std::shared_ptr<service>& _service,
@@ -370,7 +386,7 @@ protected:
bool has_file_log_;
bool has_dlt_log_;
std::string logfile_;
- boost::log::trivial::severity_level loglevel_;
+ vsomeip_v3::logger::level_e loglevel_;
std::map<std::string,
std::tuple<
@@ -512,7 +528,8 @@ protected:
uint32_t tcp_connect_time_max_;
mutable std::mutex sd_acceptance_required_ips_mutex_;
- sd_acceptance_required_map_t sd_acceptance_required_ips_;
+ sd_acceptance_rules_t sd_acceptance_rules_;
+ std::set<boost::asio::ip::address> sd_acceptance_rules_active_;
bool has_issued_methods_warning_;
bool has_issued_clients_warning_;
diff --git a/implementation/configuration/include/internal.hpp.in b/implementation/configuration/include/internal.hpp.in
index 36a6355..94a6e66 100644
--- a/implementation/configuration/include/internal.hpp.in
+++ b/implementation/configuration/include/internal.hpp.in
@@ -68,6 +68,7 @@
#define VSOMEIP_MAX_TCP_CONNECT_TIME 5000
#define VSOMEIP_MAX_TCP_RESTART_ABORTS 5
+#define VSOMEIP_MAX_TCP_SENT_WAIT_TIME 10000
#define VSOMEIP_DEFAULT_BUFFER_SHRINK_THRESHOLD 5
@@ -84,6 +85,8 @@
#define VSOMEIP_REQUEST_DEBOUNCE_TIME 10
+#define VSOMEIP_MAX_WAIT_SENT 5
+
#define VSOMEIP_COMMAND_HEADER_SIZE 7
#define VSOMEIP_COMMAND_TYPE_POS 0
@@ -219,6 +222,13 @@ const std::uint32_t ANY_GID = 0xFFFFFFFF;
typedef std::pair<std::uint32_t, std::uint32_t> credentials_t;
+enum class port_type_e {
+ PT_OPTIONAL,
+ PT_SECURE,
+ PT_UNSECURE,
+ PT_UNKNOWN
+};
+
} // namespace vsomeip_v3
#endif // VSOMEIP_V3_INTERNAL_HPP_
diff --git a/implementation/configuration/include/internal_android.hpp b/implementation/configuration/include/internal_android.hpp
index 9f770ac..ddb4631 100644
--- a/implementation/configuration/include/internal_android.hpp
+++ b/implementation/configuration/include/internal_android.hpp
@@ -17,6 +17,7 @@
#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_ENV_BASE_PATH "VSOMEIP_BASE_PATH"
#define VSOMEIP_DEFAULT_CONFIGURATION_FILE "/etc/vsomeip.json"
#define VSOMEIP_LOCAL_CONFIGURATION_FILE "./vsomeip.json"
@@ -28,11 +29,11 @@
#define VSOMEIP_BASE_PATH "/storage/"
-#define VSOMEIP_CFG_LIBRARY "libvsomeip_cfg.so"
+#define VSOMEIP_CFG_LIBRARY "libvsomeip3-cfg.so"
-#define VSOMEIP_SD_LIBRARY "libvsomeip_sd.so"
+#define VSOMEIP_SD_LIBRARY "libvsomeip3-sd.so"
-#define VSOMEIP_E2E_LIBRARY "libvsomeip-e2e.so.3"
+#define VSOMEIP_E2E_LIBRARY "libvsomeip3-e2e.so"
#define VSOMEIP_ROUTING_CLIENT 0
@@ -51,6 +52,7 @@
#define VSOMEIP_MAX_TCP_CONNECT_TIME 5000
#define VSOMEIP_MAX_TCP_RESTART_ABORTS 5
+#define VSOMEIP_MAX_TCP_SENT_WAIT_TIME 10000
#define VSOMEIP_DEFAULT_BUFFER_SHRINK_THRESHOLD 5
@@ -69,6 +71,8 @@
#define VSOMEIP_REQUEST_DEBOUNCE_TIME 10
+#define VSOMEIP_MAX_WAIT_SENT 5
+
#define VSOMEIP_COMMAND_HEADER_SIZE 7
#define VSOMEIP_COMMAND_TYPE_POS 0
diff --git a/implementation/configuration/include/service.hpp b/implementation/configuration/include/service.hpp
index e0e0c72..8077f8e 100644
--- a/implementation/configuration/include/service.hpp
+++ b/implementation/configuration/include/service.hpp
@@ -25,6 +25,10 @@ struct service {
uint16_t reliable_;
uint16_t unreliable_;
+ major_version_t major_;
+ minor_version_t minor_;
+ ttl_t ttl_;
+
std::string multicast_address_;
uint16_t multicast_port_;