diff options
Diffstat (limited to 'implementation/configuration/include')
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_; |