1Changes 2======= 3v3.1.37.1 4- Support REQUEST_ACK message type (PR #237) 5- Fix typo in error message (PR #238) 6- Fix for bug #239, as one process use two stubs for different vlans (PR #247, Issues #223 #239 #241) 7- Fix multicast timeout crash on Windows caused by bad use of reinterpret_cast (PR #272) 8- Update configuration paths to reside on vendor partition (PR #274) 9- Retry failed netlink operations (PR #283) 10- Fixed android build error (PR #288) 11- Fix for configuration option deserialize bug (PR #300, Issue #263) 12- Accept return codes within range 0x20-0x5E as valid (PR #312) 13- Add support for broadcast (PR #314) 14- Fix for TC8 test case SOMEIPSRV_RPC_07 and SOMEIPSRV_SD_BEHAVIOR_03 (PR #316, Issue #315) 15- Support boost 1.76 (PR #318) 16- Fix big endian support in byteorder.hpp (PR #320) 17- Use Reference to Prevent Copying (PR #356) 18- Add CI using github actions (PR #140) 19 20v3.1.37 21- Added dependency from network tests to e2e library (plugin). 22- Avoid services becoming available when the daemon is suspended 23- Handling with some udp errors in send_cbk process, 24 restarting the connection. 25 26v3.1.36 27- Fix for ELVIS-339712: Fix handling of subscription objects 28 during unsubscribe. 29 30v3.1.35 31- Reworked fix for ELVIS-3310053 32- Improve checking for matching responses. 33 - When sending a response, vSomeIP only checked for a request with 34 the corresponding combination of client and session identifiers. 35 - This led to the possibility, that a response was sent for the 36 wrong service and/or method because of matching client and session 37 identifiers. 38 - This commit implements a full check of service, method, client and 39 session identifiers to ensure a response fits to the received 40 request. 41- Rework to get rid of clang-tidy (llvm14) warnings. 42- Facilitate manual execution of (some) subscription tests. 43 - Switch log level from "debug" to "warning" to facilitate the selection 44 of the script name that must be executed on client side. 45- Do not send initial events for rejected subscriptions. 46 47v3.1.34 48- Use default ports if an acceptance configuration does not specify any. 49- Prevent StopSubscribe/Subscribe on first offer reception. 50- Ignore routing state settings to the current state. 51- Explicitely clean subscriptions if a service removal is reported. 52- Use SOL_RECBUFFORCE instead of SOL_RECVBUF. 53 54v3.1.33 55- Corrected flag initialization to avoid wait time when re-establishing 56 connections. 57 58v3.1.32 59- Fix bug which could lead to deleting requested services of routing 60 manager. 61- Add Jenkins pipeline. 62- Fix race condition which could lead to false positive security 63 warnings. 64- Fix handling of remote subscriptions for unoffered services: Fix bug 65 which could lead to erroneously not accepting remote subscriptions 66 after a service was stop being offered and offered again. 67 68v3.1.31 69- Fix race condition which could lead to not establishing a TCP 70 connection to a remote service 71 72v3.1.30 73- Fixed lock order inversion 74- Fixed UDP socket bind error handling 75 76v3.1.29 77- Do not send re-subscriptions on suspend 78 79v3.1.28 80- Fixed race condition in client endpoint send queue 81- Improved robustness when receiving malformed remote subscriptions 82- Cleanup remote subscribers on suspend 83 84v3.1.27 85- Performance improvement: Added service partitioning: 86 Each configured partition will lead to a separate client port being used 87 to connect to a remote server port 88- Improve handling of expired subscriptions 89- Fixed race condition when starting "last message received" - timer. 90 91v3.1.26 92- Improve handling of expired subscriptions 93 94v3.1.25 95- Fix event payload caching at proxy 96 97v3.1.24 98- Fix for initial events 99 100v3.1.23 101- Fixed crash in TCP client endpoint 102- Fixed TCP socket bind error handling 103 104v3.1.22 105- Fixed joining multicast group for udp server endpoints 106 107v3.1.21 108- Fixed missing DLT logs if DLT was enabled in config in parallel with file or console logging. 109- Avoid heap-buffer-overflow in look_ahead() when deserializing SD entry / option type. 110- Restart UDP client endpoint on connection refused error. 111- Select a free client port that was not used recently. 112- Limit the number of possible remote subscribers from same remote IP address 113 to an eventgroup provided by a service/instance if the remote 114 subscriber uses different ports for its subscriptions. 115 116v3.1.20.3 117- Correct detection payload changes (Issue #164) 118 119v3.1.20.2 120- Removed special way of detecting boost within NDK (PR #187) 121- Allow events/eventgroups to be specified in arbitrary order (Issue #68) 122- Allow port 65536 to be used (Issue #80) 123- Support IPv6 (Issue #162, PR #179) 124- Fix handling of local service history (Issue #163) 125- Fix referencing of placeholder events (Issue #175) 126- Corrected handling of debounced requests when releasing (Issue #181) 127- Fixed possible race when disconnecting (Issue #182) 128- Align order of acknowledgement and value sending (Issue #183) 129 130v3.1.20.1 131- CMakeLists.txt fixes 132 (by Martin Haase) 133- Mark all services unavailable when the routing manager goes down 134 (by Philip Werner & dannyrhubarb) 135 136v3.1.20 137- SomeIP/TP optimization 138- Fix for expired subscriptions 139 140v3.1.19 141- Log statistics for high frequent received remote events 142- Avoid unintended deletion of all service instances in release_service() 143- Prevent deletion of server endpoint on SubscribeEventGroupACK with multicast endpoint 144- Do not lock the multicast mutex twice 145 146v3.1.18 147- Support boost 1.74 148- Ignore remote offers without referenced endpoint options 149- Fixed race condition when removing security policies 150- Ensure composite send operations have finished before resetting TCP server endpoint 151 152v3.1.17 153- Support AutoSAR E2E Profile 4 154- Support dynamic policies for offered services 155- Fixed race condition between service shutdown and subscription 156- Fixed race condition between service instances offered on the 157 same endpoint(s). 158 159v3.1.16.1 160- Restore IPv6 within UDP server endpoint 161- AOSP build adaptation to vsomeip3 libraries 162 163v3.1.16 164- Fixed race condition when leaving multicast group 165- Do not busy loop when receiving garbage data on local endpoint 166 167v3.1.15 168- Ensure to remove the correct subscription object on unsubscribe 169- Implemented support to define "secure services" 170- Speedup security policy handling 171- Enable building with boost v1.73.0 172 173v3.1.14.1 174- Merged extended support for static routing (versioning) 175 (by Jean-Patrice Laude [email protected]) 176- Merged simplification of build process for hello_world example 177 (by Nikolay Khilyuk [email protected]) 178- Updated Android.bp to use boost 1.70 or higher 179- Merged Android support for hello_world example 180 (by Nikolay Khilyuk [email protected]) 181- Align response sample to documentation (do not specify application name) 182 (by JayHou [email protected]) 183- Call dlerror before calling dlsym to clear previous error 184 (by Oleg Kharitonov [email protected]) 185- Get base path from environment variable for Android NDK 186 (by Nikolay Khilyuk [email protected]) 187- Fixed wrong library naming 188 (by Nikolay Khilyuk [email protected]) 189 190v3.1.14 191- Fixed race conditions (application registration, subscription) 192 193v3.1.13 194- Abort operation when doing a full rejoin 195- Protect access when consuming a policy 196- Decrease wait time for composite send operations 197- Reimplemented logger without using boost::log 198 199v3.1.12 200- Ensure composite send operations have finished before resetting an endpoint. 201 Otherwise this may cause a crash within boost.asio. 202- Always use the assigned client identifier when sending messages from a proxy. 203- Add TTL to initial timestamp to avoid immediate expiration. 204 205v3.1.11 206- Preparation for new IPsec plugin (3.1.1) 207 208v3.1.10 209- Reset subscriptions on stop offer service 210- Protect access to security policy contents 211- Tolerate wrong/incomplete event registrations in compatibility mode 212- Avoid buffering of pending subscriptions 213 214v3.1.9 215- Fix race condition when processing multicast messages 216 217v3.1.8 218- Fix deadlock when sending messages 219- Fix race condition when processing SD messages 220 221v3.1.7 222- Fix stop subscribes when a service is released 223- Improve handling of time stamps when processing subscriptions 224- Log queued data instead of socket fill levels 225- Ensure all shutdown steps are executed (even in case of exceptions) 226 227v3.1.6 228- Fix possible busy loop when expiring subscriptions 229- Use set of serializers to avoid deadlock situation 230- Improve client identifier handling 231 - Check whether corresponding socket is available 232 - Implement retry if a client identifier cannot be used 233- Log buffer fill levels if they exceed a configurable threshold (default=67%). 234 235v3.1.5 236- Ensure subscriptions to remote services are correctly reset when 237 services are no longer available. 238- Fix race condition when inserting new subscriptions. 239- Fix accessing of security module during library shutdown. 240 241v3.1.4 242- Ensure to only mark remote services offered via UDP and TCP as 243 available when both endpoints are marked as connected to prevent TCP 244 connection restarting by the service discovery. 245- Fix possible deadlock when expiring a remote subscription and 246 sending the corresponding event at the same time. 247- Fix nullptr access in service discovery when receiving a 248 subscription for an unknown eventgroup. 249- Add new cmake variables DEFAULT_CONFIGURATION_FOLDER and 250 DEFAULT_CONFIGURATION_FILE which can be used to change the default 251 configuration folder and file at compile time (see vsomeipUserGuide 252 for more information) 253- Fix race condition leading to not accepting service offers from 254 a local client when the same service was offered and stop offered in 255 a high frequency 256 257v3.1.3 258- Set client ID to 0x0 for SOME/IP SD messages 259 260v3.1.2 261- Fix bug in vSomeIP 2 compatibility layer which lead to offering 262 selective events as normal events in conjunction with 263 CommonAPI-SomeIP mainloop integration when a proxy was build to a 264 stub through the same CommonAPI connection ID in the same binary. 265 266v3.1.1 267- Ensure sending StopOffers for services specified with a different 268 protocol than someip in the configuration. 269- Add support for boost v1.70 and v1.71. 270 271v3.1.0 272- Integrate changes of 2.14.12 - 2.14.18 273- Add get_uid and get_gid methods to message class 274- Add reliability parameter to application::offer_event and 275 application::request_event methods 276- Add vSomeIP 2 compatibility layer. 277- Fix crash when expiring a reliable-only subscription 278- Fix Android compile errors 279- Fix bug in service discovery offer acceptance handling which led to 280 only checking the first service entry of an incoming SD message via 281 the registered handler. 282- Deactivate adherence to NPDU debounce time between SOME/IP-TP 283 segments of the same message. 284- Fix less than operator of remote_info_t which lead to 285 application::get_sd_acceptance_required() always returning a map 286 with only one erroneous element 287- Fix SD startup on Windows 288- Fix heap-use-after-free in server endpoints 289 290v3.0.0 291- Cleanup of application interface 292 - Removed (un)register_subscription_error_handler methods. The 293 functionality is now offered through the 294 (un)register_subscription_status_handler methods. 295 - All methods concerning events/fields now use a new event_type_e 296 enum to specify the event type. 297 - The subscription_type_e parameter was removed from the subscribe 298 method. The way the remote service is offered now determines the 299 subscription type. 300 - The offer_acceptance* methods were renamed to sd_acceptance*. 301 - The flush parameter was removed from the send method 302 - Removed notify and notify_one methods which used the flush 303 parameter. 304- Added SOME/IP-TP functionality. Please see the vsomeipUserGuide for 305 more information. 306- Added nPDU functionality. Please see the vsomeipUserGuide for more 307 information 308- E2E protection is now implemented as plugin 309- Added Android support 310- Internal improvements and bugfixes 311 312v2.14.18 313- Fix bug leading to not sending out FindService entries after a 314 resume from Suspend-to-RAM, if the service was already known at the 315 time of the request. 316 317v2.14.17 318- Performance improvements for request-service message handling 319 320v2.14.16 321- Ensure restarting of TCP connection if TCP reset is received 322 before 3 way handshake is finished 323 324v2.14.15 325- Ensure that all clients receive the security policy update 326 327v2.14.14 328- Improved handling for EMFILE error (per-process limit of open 329 filedescriptors reached) 330- Fixed client ID assignment 331 332v2.14.13 333- Fixed race condition leading to unintended sending 334 of selective broadcasts. 335 336v2.14.12 337- Make timeout during application shutdown configurable via 338 "shutdown_timeout" json configuration file parameter 339- Fix bug leading to too fast reassignment of client IDs acquired via 340 auto-configuration in conjunction with usage of a non-continuous 341 diagnosis mask 342 343v2.14.11 344- Fixed race condition when opening shared memory 345- Fixed race condition when inserting SubscribeEventGroupACK 346 entries 347- Added prefix for security related log messages 348 349v2.14.10 350- Fixed race condition in client ID to UID mapping. 351 352v2.14.9 353- Fixed race condition in event / response validation 354 and client ID to UID mapping removal 355- Limit reconnect attempts of local client endpoints 356- Increase robustness of local server endpoint 357 in case of corrupted data stream 358 359v2.14.8 360- Handle ANY_METHOD for security policy updates 361 362v2.14.7 363- Reverted security related feature if same client connects 364 again with different credentials. 365 366v2.14.6 367- Fixed issue related to client ID reuse if security is activated 368- Use chmod instead of umask to ensure correct permissions of unix 369 domain sockets 370 371v2.14.5 372- Fixed race condition when handling security policy updates 373 374v2.14.4 375- Added whitelist feature for security policy update / removal 376- Added / improved security related checks 377 378v2.14.3 379- Prevent concurrent access to any client policies 380- Updated ACL plugin interface 381 382v2.14.2 383- Fix possible deadlock when receiving invalid responses from remote 384 TCP services 385- Enabled loading of UID GID specific security configuration during 386 application startup 387 388v2.14.1 389- Check header fields in udp endpoints for correct values 390- Fixed race condition in event::notify methods 391- Ensure to always resume sending if endpoints were restarted 392- Prevent possible concurrent access to receive buffer in endpoints 393- Allow or deny all remote clients via security config parameter 394- Adapt security config plugin to updated ACL interface 395- Make receive buffer size configurable for UDP client and 396 server endpoints via "udp-receive-buffer-size" parameter 397 in json configuration file 398- Fix race condition which could lead to premature resubscription if a 399 remote service was stop offered and offered again 400 401v2.14.0 402- Introduce security policy updates during runtime and extend 403 security configuration to filter on instance ID and method ID level 404 For more information see the vsomeipUserGuide. 405- Make IPsec plugin more robust against libdavici communication loss 406 407v2.13.2 408- Make I/O thread nice level configurable 409 410v2.13.1 411- Improve check of subnet mask for remote subscribers 412- Restart TCP connections if too big messages are received 413- Don't process subscriptions if IPsec connection isn't established 414- Additionally check protocol header fields in tcp endpoints as well 415- Fix race when expiring remote services 416 417v2.13.0 418- Update debug_diagnosis_plugin and add update_service_configuration 419 method to public application interface. This enables offering of 420 service instances on the network which are only offered locally by 421 default. The changes done through the new method are not persistent 422 over reboots. 423- Fix handling of requests send to the service discovery port 424- Log time since routing state was set to RS_RESUMED in cyclic version 425 logger 426- Blame externally offered services if routing state is set to 427 RS_SUSPENDED 428- Prevent possible exception during application shutdown 429 430v2.12.4 431- Improve handling of reboot detection in IPsec plugin if the 432 same ipsec connection is still used after reboot. 433 434v2.12.3 435- Improve handling of broken TCP streams 436 437v2.12.2 438- Expire remote subscriptions to local services when routing state is set to 439 suspending 440 441v2.12.1 442- Fixed race condition in event registration 443 444v2.12.0 445- Improve error handling and STR behaviour of IPsec plugin. 446- Improve magic cookie handling. 447- Fix possible deadlock on application shutdown 448- Fix handling of local StopOffers when duplicate service instances 449 are present in the network. 450- Make trace connector json configuration more flexible 451- Fix bug in security configuration when black listing single 452 UIDs/GIDs 453 454v2.11.2 455- Ensure service availability if IPSec plugin is activated but IPsec 456 not configured correctly. 457 458v2.11.1 459- Improve handling of slow remote ECUs in IPsec plugin 460- Fix possible deadlock on application shutdown 461 462v2.11.0 463- Added IPsec plugin. 464 The compilation of the plugin has to be explicitly enabled when calling cmake. 465 Example: cmake -DPLUGIN_IPSEC_BUILD=1 .. 466 467v2.10.22 468- Handle EPERM error (Operation not permitted) in cei::send_cbk 469- Restart TCP endpoint if a maximum number of aborted restarts 470 (due to state == CONNECTING) is reached or if a maximum allowed time since 471 the connection attempt was started has elapsed 472- Fixed missing call of subscription status handlers 473 for external fields if a following subscription 474 was done triggered by a service being stopped/expired 475- Fixed crash in vsomeip security credential check 476- Added Debian hardening compiler flags (requires GCC >= 5.2) 477- Fixed compilation with GCC 8 478 479v2.10.21 480- Improve memory usage of routing manager. 481- Improve handling of incoming SD messages with uncommon entry 482 combinations. 483- Name all threads under Linux and log thread IDs during startup. 484- Optimize memory allocation for internal message handling. 485- Ensure an (extra) dispatch thread is running in case the main 486 dispatch thread is (still) blocked. 487- Fix race condition which could lead to missing initial events for 488 local subscriptions if the application hosting the service called 489 application::offer_event and additionally application::request_event 490 for the same event. 491- Fixed crash 492 493v2.10.20 494- Add security config (i.e. vsomeip_security.json) to mandatory config files 495- Enable local_routing_test_starter.sh to use externally defined configuration 496 files 497- Reject malformed subscriptions with SubscribeEventgroupNACK if multiple 498 endpoint options are referenced 499- Use CMake define or environment variable to find gtest 500- Quit vsomeipd when Service Discovery is configured but module cannot be loaded 501- Added error message when Configuration module cannot be loaded 502- Export payload_impl to enable compilation with newer GCC versions 503- Avoid printing the same warning twice. Ensure all error paths are identifiable 504- Fixed security checks for policies without configured client ID 505- Fixed crash on auto config load in case of EOWNERDEAD caused by previous crashed/exited application 506 507v2.10.19 508- Catch exceptions on shutdown (especially from boost::log) 509- Fixed handling of malformed packets in TCP client endpoint in conjunction 510 with magic cookies 511 512v2.10.18 513- Fix restarting of TCP connection on connection reset by the server 514 and mark services reachable through it as unavailable until 515 connection is established again. 516- Fix bug which prevented restarting of TCP connections if the peer 517 instantly send a RST after the connection had been established. 518- Fix bug which could cause missing initial events in conjunction with 519 service discovery messages containing new subscriptions and 520 resubscriptions. 521 522v2.10.17 523- Speedup initial subscriptions to unreliable remote services 524- Fix deadlock in conjunction with configured client ports 525- Fix bug leading to usage of client port outside of configured range 526 527v2.10.16 528- Added changes for diagnosis mode plugin (as in v2.10.14) 529- Only map shared memory for client IDs once per process 530 531v2.10.15 532- Reverted diagnosis mode plugin (as in v2.10.11) 533- Fix remote event caching 534 535v2.10.14 536- Added changes for diagnosis mode plugin. 537- Bugfix for pending subscriptions when same port is used 538 for TCP and UDP endpoint option. 539 540v2.10.13 541- Reverted diagnosis mode plugin 542 543v2.10.12 544- Fix exception handling for boost logger 545- Update diagnosis mode plugin 546 547v2.10.11 548- Fix client ID handling for remote selective subscriptions 549- Add handling for EDESTADDRREQ in endpoints 550 551v2.10.10 552- Fix concurrency issue leading to a crash 553 554v2.10.9 555- Improve handling of service discovery messages with entries 556 referencing too many options. 557- Prevent sending of duplicate remote subscriptions to local clients 558 if the local client processes incoming subscriptions too slow. 559- Remote (un)subscriptions to the same eventgroup are now queued in 560 the routing manager until the local client has processed the 561 previous (un)subscription for this eventgroup. 562- Introduce new json configuration parameter 'diagnosis_mask' to 563 control the number of bits in the client ID used for the diagnosis 564 address. This can be used to enable more than 254 concurrent clients 565 on a node. For more information see the vsomeipUserGuide. 566- If the service discovery is enabled it is is only started if a 567 matching multicast route for the configured service discovery 568 multicast group is present in the system. This applies only to 569 Linux. 570- Rework security configuration: 571 - Allow policy specifications without client specification. 572 - Allow policies to be specified for ranges of uids/gids. 573 For more information see the vsomeipUserGuide. 574 575v2.10.8 576- Change dispatching of availability states in case an availability 577 handler of a service instance is blocked in user code: Availability 578 states of a service instance are now never dispatched parallel. The 579 next availability state for a service instance is only dispatched 580 after the blocked availability handler returned from user code. If 581 the availability of the service instance changes in the meantime, 582 subsequent incoming messages of the service instance are queued 583 until the availability change was reported to the user code. 584- Subscriptions to remotely offered services are now always done based 585 on the protocol(s) the remote service is offered with. The 586 subscription_type parameter of the application::subscribe method is 587 ignored. 588- Added wildcard support ("any") for the uid and gid json parameters 589 in the security configuration. 590- Fix possible deadlock on application shutdown 591 592v2.10.7 593- Fix potential deadlock when expiring remote subscriptions 594- Rework restarting of tcp client endpoints to prevent heap corruption 595 under high load situations 596 597v2.10.6 598- Fix concurrency issue leading to a crash when asynchronous 599 subscription handlers were used. 600- Improved packing of subscriptions sent out as answer to incoming 601 offer service messages. 602 603v2.10.5 604- Fix possible deadlock on application shutdown 605- Try to reestablish TCP connection on resubscription if the remote 606 closed the connection 607- Introduce new configuration file parameters to control 608 interpretation of TTL field of incoming remote offers and 609 subscriptions: 610 - service-discovery > ttl_factor_offers (optional array of 611 service/instance/TTL factor tuples) 612 - service-discovery > ttl_factor_subscriptions (optional array of 613 service/instance/TTL factor tuples) 614- Added possibility to debounce external events/fields 615 based on time or change of data in the payload (maskable) via new 616 configuration file parameter: 617 - debounce (optional array) 618 For more information see the vsomeipUserGuide. 619- Added possibility to limit amount of memory used to cache outgoing 620 messages on IP port basis or globally via configuration file 621 parameter: 622 - endpoint-queue-limits (array): to limit on IP:Port (endpoint) 623 level 624 - endpoint-queue-limit-external: to generally limit all external 625 endpoints. 626 - endpoint-queue-limit-local: to limit queue sizes for local 627 communication 628 For more information see the vsomeipUserGuide. 629 630 631v2.10.4 632- Extended diagnosis plugin to handle requests for 633 "disableRxAndEnableTx" and "disableRxAndTx". 634- Catch unhandled user code exceptions thrown from called handlers. 635- Don't send SubscribeEventGroupNACK for pending subscriptions on next 636 offer to reduce the amount of StopSubscribe/Subscribe messages. 637- Added possibility to apply filter for client side logging 638 using VSOMEIP_CLIENTSIDELOGGING environment variable. 639 640v2.10.3 641- Interpret all incoming TTLs five times longer in service discovery 642 to prevent inadvertent expiration of remote offers during high load 643 situations. 644 645v2.10.2 646- Fix deadlock in routing manager when processing subscription 647 acknowledgment from a local client if the corresponding service 648 instance was stopped in the meanwhile. 649- Introduce status_log_interval and memory_log_interval json file 650 parameters which can be used to cyclically log memory consumption 651 and/or internal status of the routing manager in a given interval 652- Add Debug Diagnosis Job plug-in 653- Support definition of multiple client port ranges in configuration 654 655v2.10.1 656- Fix possible memory corruption in routing manager on TCP connection 657 reset 658 659v2.10.0 660- Add register_async_subscription_handler to application interface 661- Ensure faster stopping of UDP and TCP endpoints 662- StopSubscribe eventgroup entries of StopSubscribe/Subscribe 663 eventgroup entry sequences in incoming SD messages are now 664 completely handled in the service discovery module 665 666v2.9.5 667- Change magic cookie behaviour to only send a magic cookie every 10 668 seconds instead of in front of every SOME/IP message 669- Fixed bug which prevented resubscription after resuming from 670 suspended state 671 672v2.9.4 673- Fixed deadlock on suspend to RAM / resume, triggered 674 by signal handler. 675 676v2.9.3 677- Fixed race condition on application shutdown 678- Fixed bug that application object was not destroyed 679- Enabled client side logging of received messages 680 to DLT if environment variable VSOMEIP_CLIENTSIDELOGGING 681 is set to empty string or another arbitrary value. 682- Ensure that the correct source port is used for sending events 683 684v2.9.2 685- fix handling of received response messages for unknown 686 clients. 687- Ensure that all external services are marked as offline when 688 routing_state is set to RS_SUSPENDED 689- Ensure to start sending out FindService messages for requested 690 services after resuming. 691- Ensure that the service info is also deleted if no unreliable 692 communication happened before the service TTL has expired. 693 694v2.9.1 695- Don't ignore service requests for UDP-only remote services done 696 before corresponding OfferService message was received. 697- Ensure that main dispatcher thread waits until newly started 698 dispatcher threads are finished with their call into the user code 699 before starting to dispatch again after a blocking call occurred. 700 701v2.9.0 702- Added get_offered_services_async method to application interface to 703 read the currently offered services 704- Added set_watchdog_handler method to application interface which can 705 be used to register a handler invoked in a given interval. 706- Optimize processing time of incoming service discovery messages 707- Events are now sent based on their configuration in the json file 708- If a remote service is offered reliable and unreliable subscriptions 709 are now done always with both endpoint options. 710- Incoming subscriptions are now not acknowledged if not all events of 711 the eventgroup can be served with the given endpoint options. 712 713v2.8.1 714- Support negative filter in trace connector 715 716v2.8.0 717- Change behaviour of register_subscription_status_handler method of 718 the application interface: Registered handlers will only be called 719 if the subscription was accepted by the remote side. 720- Add 2nd register_subscription_status_handler method to application 721 interface with additional flag to enable calling of the registered 722 handler if the subscription is rejected by the remote side. 723 724v.2.7.3 725- Fix deadlock when stopping client endpoints to remote services 726- Fix deadlock during construction of Subscribe Eventgroup entries 727 728v.2.7.2 729- Avoid deadlock when printing error message about too large messages 730 731v2.7.1 732- Prevent processing of too short messages received via UDP 733- Avoid catching SIGABRT in vsomeipd 734- Prevent duplicate logging of remote messages 735- Log message cleanup/enhancement 736 737v2.7.0 738- Add possibility to register a subscription status handler via 739 application interface. The handler will be called if a subscription 740 is acknowledged / not acknowledged by the application hosting the 741 target service instance of the subscription 742- The default subscription type of application::subscribe method was 743 changed from RELIABLE_AND_UNRELIABLE to PREFER_RELIABLE to harmonize 744 initial event behaviour 745- Add generic plug-in concept 746- Fix bug which caused sending out subscription messages containing 747 endpoint options with port set to zero 748- Make magic cookie detection TCP connection based 749- Avoid sending unneeded SIGKILLs to current routing manager 750- Forward service's instance IDs to DLT 751- Fixed performance loss on "client ID" lookup needed for ingoing 752 remote subscriptions 753- Add signal handling for starting stopping the service discovery to 754 vsomeipd 755- The message object can now be asked for CRC check state: 756 is_valid_crc() 757- Incoming remote responses where the CRC check fails will trigger: 758 set_is_valid_crc(false) 759 760v2.6.4 761- Fix bug in reboot detection of other nodes 762- Improve restarting of TCP connections 763 764v2.6.3 765- Improve reboot detection of other nodes 766- Introduce 'max-payload-size-reliable' json file parameter which can be used to 767 globally limit the maximum allowed payload size for TCP communication 768- Added CRC checksum calculation for bit optimized messages 769 770v2.6.2 771- Service-Disovery performance improvements 772- Made Routing Manager restartable 773- Fixed file handle leak caused by remote ECU reboot 774- Activate TCP-Keep-Alive for TCP endpoints 775- Debouncing of request-service messages (routing info performance) 776- Fixed false session-id handling of identification request 777 778v2.6.1 779- Fixed clearing of subscribers on stop offer service 780 781v2.6.0 782- Fixed races and crashes 783- Fixed repetition phase timings for find service messages 784- Reworked internal event/field distribution to reduce CPU load 785- Reworked internal routing info distribution leading to fewer and smaller 786 messages and lower CPU load 787- Extend public application interface with second unsubscribe method with 788 additional event parameter 789 790v2.5.3 791- Fixed races and crashes 792- The minor version of a service instance is considered again when reporting the 793 service instance's availability (this was removed with v2.4.2). If the minor 794 version should not be considered use ANY_MINOR or DEFAULT_MINOR when 795 registering availability handlers. 796- Fixed initial events on unsubscription 797- Improved dispatcher handling for blocking calls 798- Crashed applications are now automatically unsubscribed 799 800v2.5.2 801- Fixed deadlock and crashes 802- Prevent race of initial attributes 803- Allow incomplete application configurations 804- Unit test timeouts increased to avoid failures on (slow) build servers 805 806v2.5.1 807- Removed payload size limit. By default messages with an arbitrary length can 808 now be sent locally and via TCP. The payload-sizes configuration file array is 809 now used to limit the payload size for the specified endpoints instead of 810 increasing it. There are two new configuration file parameters: 811 - max-payload-size-local: limit maximum allowed payload size for node internal 812 communication. 813 - buffer-shrink-threshold: variable to control buffer memory deallocation 814 after big messages have been processed. For more information see the 815 vsomeipUserGuide. 816- Fixed cleanup of endpoints for subscriptions using an exclusive proxy 817 (selective) which unnecessarily increased the number of open file descriptors. 818- Fixed assignment of predefined application IDs via autoconfiguration. 819- Decouple start of routing manager from network availability. 820- Made number of internal threads per application configurable. 821- Postpone notify_one events sent from subscription handler to ensure correct 822 message order on receiver side. 823 824v2.5.0 825- Added notify-/notify_one-methods to enable flush control for notifications. 826- Restructured configuration to be a separate module (preparation to enable 827 the usage of compiled configurations to speed-up startup) 828- Added vSomeIP-Security: Socket authentication based on Linux-credentials 829 together with further security checks using configurable policies. 830- Fixed pending subscriptions had not sent out if subscribing application 831 hosts the routing manager. 832- Fixed crash in vsomeipd due to concurrent access when closing/shutdown socket. 833- The service discovery now debounces newly offered service instances to avoid 834 sending out the offers of the same service instance with a too high frequency. 835 The default debounce time is set to 500ms. It can be changed via the new json 836 file parameter service-discovery/offer_debounce_time. 837 838v2.4.3 839- Fix receiving of UDP frames containing multiple SOME/IP messages via UDP from 840 external service instances 841 842v2.4.2 843- TCP connections for services no longer requested aren't reestablished anymore 844- The minor version of a service instance is no longer considered when reporting 845 the service instance's availability 846- Introduce new internal_services json file parameter to define the internal 847 service instances. This parameter can be used to control the sending behaviour 848 for find service entries 849- Fixed event processing if service and client shared the same application 850- Incoming find service entries with unicast flag set to 0 are now replied with 851 a unicast offer service message instead of a multicast offer service message. 852- application::stop() now blocks until the shutdown has finished completely 853 854v2.4.1 855- Extended number of endpoints that can be referenced from entries array in 856 service discovery messages 857- Remove DLT contexts on application shutdown 858- Avoid initialization of vsomeip-applications if the maximum number of 859 applications (client identifiers) has been reached 860- Prevent sending of OfferService entry as a reply to FindService message for 861 internal services 862- Fixed deregistration of vsomeip-applications that became unresponsive 863- Fixed loop in endpoints causing high load during shutdown of vsomeip 864 applications 865- Fixed loop in endpoints causing temporary high load if other devices become 866 unavailable without deregistering 867 868v2.4.0 869- Disabled tracing SOME/IP-SD messages by default. Set "tracing/sd_enable" 870 switch to "true" to enable it. 871- Trace notification events once instead of per target. 872 873v2.3.5 874- Fix TTL in Subscribe Eventgroup Entries 875 876v2.3.4 877- Exhaust client id range before reuse 878- Provide public interface to ask for available instances 879 880v2.3.3 881- Added -q/--quiet switch to the daemon to allow it to be started without 882 DLT logging 883- Fix event caching in routing manager 884 885v2.3.2 886- Fix client deregistration during the client registration 887- Fix handling of pending commands during registration 888 889v2.3.1 890- Fix shutdown crashes (logger & application shutdown) 891- Fix race condition in client identifier configuration 892- Fix vsomeipd crash 893- Fixed handling of notifications (compliance) 894 895v2.3.0 896- Extend the API to force field notifications 897- Implemented cyclic updated for events/fields 898- Implemented epsilon updates (the used can provide a function to decide 899 whether or not a value update shall be considered as a change) 900- Fixed lifecycle: Wait acknowledge of de/register application 901- Periodically log version information 902- Avoid (shadow) event registrations for services only offered locally 903- Fixed determination of routing manager host in case auto-configuration 904 fails 905- Removed initial flag from internal message format 906- Fixed calling of registered message handlers for cases where wildcards 907 were used during registration. 908- Fixed availability reporting of reliable (TCP) remote services offered 909 on the same port 910 911v2.2.4 912- Set default log level to DEBUG 913- Improved segmentation of service discovery messages 914- Fixed a race condition during subscriptions 915 916v2.2.3 917- Ensure service discovery messages to not exceed maximum packet size 918 919v2.2.2 920- Ensure multicast messages are sent by the network adapter that is configured 921 to be used for unicasts instead of relying on the configured routes 922 923v2.2.1 924- Backward compatibility fixes 925 926v2.2.0 927- Implemented Peer-to-Peer data exchange for notifications 928- Fixed handling of minor version during service discovery 929- Made initialization of application objects reentrant 930- Routing manager proxies now reconnect to the routing manager if the 931 connection got lost 932- Auto-configuration supports multiple (different) configuration files 933- The opening of TCP connections is no longer done without an explicit request 934- Request No Respose messages are no longer answered in case of errors 935- Notifications over IP were fixed 936 937v2.1.2 938- Ensure correct message order 939 940v2.1.1 941- Ensure SD FindService-messages are sent after client re-registration 942- Corrected configuration of MagicCookies 943- Make client ports configurable 944- Implemented FindService message optimization 945- Extended configuration consistency checks 946 947v2.1.0 948- Avoid duplicate notifications if a selective event is in more than one 949 eventgroup 950- Ensure SD messages are sent from the SD port 951- Ignore SD messages with wrong message identifier 952- Accept unreliable subscription for eventgroups without configured multicast 953 address 954- Reject subscriptions that contain invalid IP address or port 955- Reject subscriptions for TCP if the connection is not established 956- Exclude vsomeip_ctrl from default installation 957- Only accept SD messages from SD port 958- Acknowledge multiple subscriptions sent within the same message with a single 959 message 960- Allow to specify an application specific DLT application 961- Ensure correct ordering of availability notifications 962- Automatically expire subscription based on the given TTL 963- Do not include internal services in SD offer messages 964- Consider all fields of SD subscribe messages 965- Made the watchdog configurable 966- Support destination address resolution on Windows (for reboot detection) 967- Support auto-configuration (client identifiers, routing manager) on Windows 968 969v2.0.6 970- Diagnosis address can be configured at runtime 971 972v2.0.5 973- Fixed reboot detection behavior 974 975v2.0.4 976- Service Discovery now used configured Client ID prefixes (=DIAGNOSIS_ADDRESS) 977- Reworked reboot detection (now based on the destination address) 978- Aligned default TTL setting (was 5 in vsomeip and 0xFFFFFF in vsomeip-sd, now 979 its constently 0xFFFFFF) 980 981v2.0.3 982- Fixed shutdown and application re-registering 983 984v2.0.2 985- Fixed endpoint flushing 986- Improved handling of Selective Broadcasts (CommonAPI) 987- Trace connector was added 988- Added reboot detection 989- Reworked handling of TCP connections 990- Support multiple multicast eventgroups per service 991- Improved handling of multicasts 992- Extended Service Discovery to send FindMessage messages for unknown services 993- Support multiple SOME/IP messages in a single UDP datagram 994 995v2.0.1 996- Ensure Unicast flag is set in all Service Discovery messages 997- Allow "local" as alias for unicast address in Magic Cookie configuration 998- Correctly set layer 4 protocol in multicast options 999- Increased robustness of deserialization of configuration options 1000- Fixed handling of unknown Service Discovery options 1001 1002v2.0.0 1003- Buffer sizes were adapted to the transport protocols 1004- Added support for IPv6 multicast 1005- Improved handling of endpoints 1006- Report service state changes instead of service state to the application 1007- Set and process TTL field in Service Discovery to support detection of "lost" 1008 services 1009- Support automatic configuration of local communication 1010- Added compile time variable DIAGNOSIS_ADDRESS (which maps to the high byte of 1011 the SOME/IP client identifier) 1012- Configuration of events was moved from configuration file to API. 1013- Fixed routing of notication events. 1014- Increased robustness of configuration loader 1015- Changed default watchdog cycle from 1s to 5s 1016- Removed TTL arguments from public interface 1017- Allow Service Discovery to report non-SOME/IP services by setting the 1018 configuration variable "protocol" 1019- Fixed serialization of major version in Eventgroup entries 1020- Magic Cookies are no longer forwarded to the routing manager but handled in 1021 the receiving endpoint 1022- vsomeip daemon was added 1023 1024v1.3.0 1025- Fixed SD library loading on Windows 1026- Changed cmake directory name (CMake --> cmake) 1027- Corrected check for multicast address in Service Discovery 1028- Added default setting for Service Discovery timings 1029- Ensure only local services are reported by the Service Discovery 1030- Fixed a crash in case of a wrong unicast address definition 1031- Protected forwarding of availability information 1032- Improved handling of notification events 1033- Added initial support for selective broadcasts (CommonAPI) 1034- Avoid deadlock when offering services 1035- Correct handling of events 1036- Added initial support for managed interfaces (CommonAPI) 1037 1038v1.2.0 1039- Added (optional) thread pool for distribution of messages to the application 1040- Made configuration of service groups optional (as it is unneeded in pure 1041 client applications) 1042- Support specification of transportation mode (reliable (TCP) / unreliable 1043 (UDP)) when creating messages 1044- Fixed internal distribution of notication events 1045- Block messages that are received on the wrong port 1046- Fixed deregistration of local clients 1047- Fixed startup of applications that were started earlier than the routing 1048 manager 1049- Resetting all events of a service if it becomes unavailable (to ensure initial 1050 events are sent when it becomes available again) 1051- Ensure consistency of version information 1052- Fixed Service Discovery state machine 1053 1054v1.1.0 1055- Local communication in multiprocessor environments was fixed 1056- Runtime access was changed from raw to shared pointer 1057- vsomeip logger is used whereever possible (replacing std::cerr calls) 1058- Ensure the logger is not deleted before issueing tha last log message when 1059 shutting down 1060- Fixed shutdown crash by checking the existence of endpoint host before 1061 accessing it 1062- Routing info processing in case of multiple instances of the same service 1063 was fixed 1064- Support for local communication on Windows was added 1065