Releases: COVESA/vsomeip
Releases · COVESA/vsomeip
vSomeIP 3.1.37.1
For more information please check the CHANGES file.
3.1.20.3
3.1.20.2
- Removed special way of detecting boost within NDK (PR #187)
- Allow events/eventgroups to be specified in arbitrary order (Issue #68)
- Allow port 65536 to be used (Issue #80)
- Support IPv6 (Issue #162, PR #179)
- Fix handling of local service history (Issue #163)
- Fix referencing of placeholder events (Issue #175)
- Corrected handling of debounced requests when releasing (Issue #181)
- Fixed possible race when disconnecting (Issue #182)
- Align order of acknowledgement and value sending (Issue #183)
3.1.20.1
- CMakeLists.txt fixes
(by Martin Haase) - Mark all services unavailable when the routing manager goes down
(by Philip Werner & dannyrhubarb) - SomeIP/TP optimization
- Fix for expired subscriptions
- Log statistics for high frequent received remote events
- Avoid unintended deletion of all service instances in release_service()
- Prevent deletion of server endpoint on SubscribeEventGroupACK with multicast endpoint
- Do not lock the multicast mutex twice
- Support boost 1.74
- Ignore remote offers without referenced endpoint options
- Fixed race condition when removing security policies
- Ensure composite send operations have finished before resetting TCP server endpoint
- Support AutoSAR E2E Profile 4
- Support dynamic policies for offered services
- Fixed race condition between service shutdown and subscription
- Fixed race condition between service instances offered on the
same endpoint(s).
3.1.16.1
- Fixed race condition when leaving multicast group
- Do not busy loop when receiving garbage data on local endpoint
- AOSP build adaptation to vsomeip3 libraries
- Restore IPv6 within UDP server endpoint
3.1.15.1
- Ensure to remove the correct subscription object on unsubscribe
- Implemented support to define "secure services"
- Speedup security policy handling
- Enable building with boost v1.73.0
- Adapt build and hello_world example to Android NDK
(by Nikolay Khilyuk [email protected])
3.1.14.1
- Merged extended support for static routing (versioning)
(by Jean-Patrice Laude [email protected]) - Merged simplification of build process for hello_world example
(by Nikolay Khilyuk [email protected]) - Updated Android.bp to use boost 1.70.0 or higher
- Merged Android support for hello_world example
(by Nikolay Khilyuk [email protected]) - Align response sample to documentation (do not specify application name)
(by JayHou [email protected]) - Call dlerror before calling dlsym to clear previous error.
(by Oleg Kharitonov [email protected]) - Get base path from environment variable for Android NDK.
(by Nikolay Khilyuk [email protected]) - Fixed wrong library naming
(by Nikolay Khilyuk [email protected]) - Fixed race conditions (application registration, subscription)
- Abort operation when doing a full rejoin
- Protect access when consuming a policy
- Decrease wait time for composite send operations
- Reimplemented logger without using boost::log
- Ensure composite send operations have finished before resetting an endpoint.
Otherwise this may cause a crash within boost.asio. - Always use the assigned client identifier when sending messages from a proxy.
- Add TTL to initial timestamp to avoid immediate expiration.
- Reset subscriptions on stop offer service
- Protect access to security policy contents
- Tolerate wrong/incomplete event registrations in compatibility mode
- Avoid buffering of pending subscriptions
- Fix race condition when processing multicast messages
- Fix deadlock when sending messages
- Fix race condition when processing SD messages
vSomeIP 3.1.7.1
- Fix stop subscribes when a service is released
- Improve handling of time stamps when processing subscriptions
- Log queued data instead of socket fill levels
- Ensure all shutdown steps are executed (even in case of exceptions)
- Fix possible busy loop when expiring subscriptions
- Use set of serializers to avoid deadlock situation
- Improve client identifier handling
- Check whether corresponding socket is available
- Implement retry if a client identifier cannot be used
- Ensure subscriptions to remote services are correctly reset when
services are no longer available. - Fix race condition when inserting new subscriptions.
- Fix accessing of security module during library shutdown.
- Ensure to only mark remote services offered via UDP and TCP as
available when both endpoints are marked as connected to prevent TCP
connection restarting by the service discovery. - Fix possible deadlock when expiring a remote subscription and
sending the corresponding event at the same time. - Fix nullptr access in service discovery when receiving a
subscription for an unknown eventgroup. - Add new cmake variables DEFAULT_CONFIGURATION_FOLDER and
DEFAULT_CONFIGURATION_FILE which can be used to change the default
configuration folder and file at compile time (see vsomeipUserGuide
for more information) - Fix race condition leading to not accepting service offers from
a local client when the same service was offered and stop offered in
a high frequency - Set client ID to 0x0 for SOME/IP SD messages
- Fix bug in vSomeIP 2 compatibility layer which lead to offering
selective events as normal events in conjunction with
CommonAPI-SomeIP mainloop integration when a proxy was build to a
stub through the same CommonAPI connection ID in the same binary. - Ensure sending StopOffers for services specified with a different
protocol than someip in the configuration. - Add support for boost v1.70 and v1.71.
- Add get_uid and get_gid methods to message class
- Add reliability parameter to application::offer_event and
application::request_event methods - Add vSomeIP 2 compatibility layer.
- Fix crash when expiring a reliable-only subscription
- Fix Android compile errors
- Fix bug in service discovery offer acceptance handling which led to
only checking the first service entry of an incoming SD message via
the registered handler. - Deactivate adherence to NPDU debounce time between SOME/IP-TP
segments of the same message. - Fix less than operator of remote_info_t which lead to
application::get_sd_acceptance_required() always returning a map
with only one erroneous element - Fix SD startup on Windows
- Fix heap-use-after-free in server endpoints
- Cleanup of application interface
- Removed (un)register_subscription_error_handler methods. The
functionality is now offered through the
(un)register_subscription_status_handler methods. - All methods concerning events/fields now use a new event_type_e
enum to specify the event type. - The subscription_type_e parameter was removed from the subscribe
method. The way the remote service is offered now determines the
subscription type. - The offer_acceptance* methods were renamed to sd_acceptance*.
- The flush parameter was removed from the send method
- Removed notify and notify_one methods which used the flush
parameter.
- Removed (un)register_subscription_error_handler methods. The
- Added SOME/IP-TP functionality. Please see the vsomeipUserGuide for
more information. - Added nPDU functionality. Please see the vsomeipUserGuide for more
information - E2E protection is now implemented as plugin
- Added Android support
- Internal improvements and bugfixes
- Fix bug leading to not sending out FindService entries after a
resume from Suspend-to-RAM, if the service was already known at the
time of the request. - Performance improvements for request-service message handling
2.14.16
- Ensure restarting of TCP connection if TCP reset is received before 3 way handshake is finished
- Reworked IPSec connection unblocking if reboot was detected
- Ensure that all clients receive the security policy update
- Increased the max allowed number of open file descriptors from the soft limit to the hard limit for vsomeipd
- Improved handling for EMFILE error (per-process limit of openfiledescriptors reached)
- Fixed client ID assignment
- Fixed race condition leading to unintended sending of selective broadcasts.
- Make timeout during application shutdown configurable via "shutdown_timeout" json configuration file parameter
- Fix bug leading to too fast reassignment of client IDs acquired via auto-configuration in conjunction with usage of a non-continuous diagnosis mask
- Fixed race condition when opening shared memory
- Fixed race condition when inserting SubscribeEventGroupACK entries
- Added prefix for security related log messages
- Fixed race condition in client ID to UID mapping.
- Fixed race condition in event / response validation and client ID to UID mapping removal
- Limit reconnect attempts of local client endpoints
- Increase robustness of local server endpoint in case of corrupted data stream
- Handle ANY_METHOD for security policy updates
- Reverted security related feature if same client connects again with different credentials.
- Fixed issue related to client ID reuse if security is activated
- Use chmod instead of umask to ensure correct permissions of unix domain sockets
- Fixed race condition when handling security policy updates
- Added whitelist feature for security policy update / removal
- Added / improved security related checks
- Prevent concurrent access to any client policies
- Fix possible deadlock when receiving invalid responses from remote TCP services
- Enabled loading of UID GID specific security configuration during application startup
- Check header fields in udp endpoints for correct values
- Fixed race condition in event::notify methods
- Ensure to always resume sending if endpoints were restarted
- Prevent possible concurrent access to receive buffer in endpoints
- Allow or deny all remote clients via security config parameter
- Make receive buffer size configurable for UDP client and server endpoints via "udp-receive-buffer-size"
parameter in json configuration file - Fix race condition which could lead to premature resubscription if a remote service was stop offered and offered again
- Introduce security policy updates during runtime and extend security configuration to filter on instance ID and method ID level. For more information see the vsomeipUserGuide.
- Make I/O thread nice level configurable
- Improve check of subnet mask for remote subscribers
- Restart TCP connections if too big messages are received
- Don't process subscriptions if IPsec connection isn't established
- Additionally check protocol header fields in tcp endpoints as well
- Fix race when expiring remote services
- Fix handling of requests send to the service discovery port
- Log time since routing state was set to RS_RESUMED in cyclic version logger
- Blame externally offered services if routing state is set to RS_SUSPENDED
- Prevent possible exception during application shutdown
- Improve handling of broken TCP streams
- Expire remote subscriptions to local services when routing state is set to suspending
- Fixed race condition in event registration
- Improve magic cookie handling.
- Fix possible deadlock on application shutdown
- Fix handling of local StopOffers when duplicate service instances are present in the network.
- Make trace connector json configuration more flexible
- Fix bug in security configuration when black listing single UIDs/GIDs
- Fix possible deadlock on application shutdown
- Handle EPERM error (Operation not permitted) in cei::send_cbk
- Restart TCP endpoint if a maximum number of aborted restarts (due to state == CONNECTING) is reached or if a maximum allowed time since the connection attempt was started has elapsed
- Fixed missing call of subscription status handlers for external fields if a following subscription was done triggered by a service being stopped/expired
- Fixed crash in vsomeip security credential check
- Added Debian hardening compiler flags (requires GCC >= 5.2)
- Fixed compilation with GCC 8
2.10.21
- Improve memory usage of routing manager.
- Improve handling of incoming SD messages with uncommon entry combinations.
- Name all threads under Linux and log thread IDs during startup.
- Optimize memory allocation for internal message handling.
- Ensure an (extra) dispatch thread is running in case the main dispatch thread is (still) blocked.
- Fix race condition which could lead to missing initial events for local subscriptions if the application hosting the service called application::offer_event and additionally application::request_event for the same event.