forked from COVESA/vsomeip
-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathCHANGES
More file actions
1755 lines (1544 loc) · 69.4 KB
/
Copy pathCHANGES
File metadata and controls
1755 lines (1544 loc) · 69.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Changes
=======
v3.5.9
- global
- Add vsomeip version to cmake log
- Add support for VSOMEIP_ABORT_ON_CRIT_SYSCALL_ERROR
- Remove use of strerror
- React on Bad File Descriptor (EOBADF) for epoll_wait
- Remove leftover configurations
- Improve logger performance, turn it almost lock-free
- Fix use of boost non-asio error codes
- Fix compile with GCC < 10 again
- Mark all DLT log messages as public
- tests
- network tests
- Fix and/or document debounce_callback_test,
cyclic_event_tests, debounce_filter_test,
suspend_resume_test_initial, event_test,
offer_stop_offer_test, allow_reconnects,
subscribe_notify_test_one_event_two_eventgroups_tcp,
offer_test_local, debounce_frequency_test,
test_restart_client_in_loop, offer_test_service
- Create multicast group test
- unit tests
- Created udp_server_endpoint_impl unit tests
- Fix unit tests with boost 1.87+
- endpoint
- Fix get_local_port, remove set_local_port
- Fix multicast leave, add repeat delay
- Ensure socket closure on dtor
- Remove duplicate shutdown closure of sockets
- Add SO_REUSEPORT option to mitigate Address already used issues
- local communication
- Fix race condition on accept_cbk
- Improve logs
- Fix client connect logic due to netlink removal
- external communication
- Fix race condition usei with on_message_received_unlocked
- Remove duplicate shutdown closure of sockets on tcp_client_endpoint_impl
- routing
- Remove remote subscription on connection lost towards host
- routing manager client
- Remove sender start on init
- Fix client-side-logging crash
- android
- Cleanup ifdef ANDROID
v3.5.8
- android
- Possibility to build vsomeip with android NDK
- routing
- Check if a service is available before sending a request to it
- Infer routing information (client-id, guest address) for a local server connection from
the first received message, removing the dependency of ADD_CLIENT command from the routing manager host.
- routing_manager_client
- Fix threading issue in the routing handler implementation
- routing_manager_stub
- Add missing ON_UNAVAILABLE log
- Drop usage of netlink
- endpoints
- Fix queue size recheck condition.
- Add tcp keepalive as configurable parameter
- Add backtrace logs for Bad File Descriptor errors
- external communication
- Ensure that all accesses to targets_ are synchronised by mutex_
- Check that connection wasn't stopped before repeating the receive.
- Fix automatic multicast rejoin operations at startup
- internal communication
- When tcp keepalive is disabled, for clients in the same VM/SOC, the HOST never discovers that it lost the connection.
Add recovery mechanism for this scenario: replace the previous connection.
- e2e
- Fix update of E2E local counters
- application_impl
- Reassign thread names after ASSIGN_CLIENT_ACK_ID
- Remove leftover signal handling logic
- tests
- network_tests
- Fix test someip_application_init_test.multithread_init
- Fix suspend resume tests
- Fix availability handler test
- Add debounce epsilon test
- Add new tests break_client_with_eof_before_finishing_registration and break_host_side_only_with_broken_pipe
v3.5.7
- global
- Update deprecated boost::asio APIs
- Update documentation regarding the vsomeip configurations
- Addresses most shadowing variables
- Fixes some old style C-casts
- routing_manager_base
- Always send initial event on subscription
- routing_manager_impl
- The rule vsomeip_sec_policy_is_client_allowed_to_access_member, was considered to be redundant,
therefore it is now removed.
- Consistently execute/schedule the action (sending, processing a received message), before trace
the message.
- Ensure to unsubscribe non selective events.
- Clear multicast only for last subscriber
- routing_manager_stub
- Fix SIGSEGV on application register that cna happen if an application sends
REGISTER_APPLICATION_ID without giving a non-zero port, when using local TCP.
- Fix client registration thread names.
- Enforce a client reconnect by dropping the connection client->routingd
- routing_manager_client
- Replace an erase from know_clients map call with the appropriate function.
- Make client id show as hex value, in logs
- Consistently execute/schedule the action (sending, processing a received message), before trace
the message.
- Close all connections on "client error".
- Drop use of netlink and use IP_FREEBIND, for linux and android platforms
- Ensure client process only once the registration
- Update security offer rule for messages
- endpoints
- local communication
- Added missing timeout handling on connection timeout.
- Fix use of bound client
- Change the order how a connection is cleaned-up.
- external communication
- Add predicate to condition variables.
- udp_server_endpoint_impl refactoring
- local and external communication
- Set TCP_USER_TIMEOUT on connections, which causes a connection to timeout when data
remains unacknowledged for more than a certain amount of time.
- Remove the exponential timer increase from connection.
- Handle not_socket error on send_cbk.
- Set was_not_connected to true if not established or connected when send_cbk is called.
- Close all connections on "client error".
- netlink
- optimize get link request by filtering the output
- optimize bind parameters to the data really needed
- fix IPv6 handling
- improve error handling
- reduce buffer size
- service_discovery
- Rename IPV3 to IPV4
- application
- GCC 15 requires stdint.h to be explicitly imported.
- Add logs to registering of subscription handlers.
- Add predicate to condition variables.
- configurations
- Allow to set any service/instance on supress missing events.
- Use application name instead of client identifier for specific debouncing configurations.
- plugin
- Remove unused load_plugins
- tests
- network_tests
- Enables Valgrind (massif and memcheck) and removes Valgrind Helgrind.
- Fix issues with certain Valgrind memcheck tests where Valgrind can't follow TLS memory until
the thread is completely destroyed, therefore can't confirm whether the thread cleans it up
after exit, hence it marks it "possibly lost".
- Fix security tests false positives, in tests that have the missing check for the exit codes in
the .sh starter script.
- Added new test to verify if the availability handler is working correctly.
- Added new test to validate local tcp client registration sequence.
- Added tests for local tcp communication with fault injection
- Fix offer_stop_offer_test by leaving the trigger if the (Un)Available to the end of the process
- unit_tests
- Fix unit tests failling on Windows
- examples
- Fix examples on Windows and set them as voting
- documentation
- Add extra documentation for routing info command
v3.5.6
- routing_manager_client
- Forcing the ON_AVAILABLE log and send subscription of requested services even if availability was
previously known.
- Remove pending subscription entry right after calling on_subscription from application impl - race
condition
- Add missing mutex on request_debounce_timeout_ck and reset request_debounce_timer_running_ if
requests_to_debounce_ is empty - race condition (issue: missing request)
- lock registration_state_mutex_ before sending subscribes and unsubscribes - race condition
- re-request service availability triggers from the routing host when a client loses the connection
to a service provider
- routing_manager_impl
- Convert pending_sd_offers_ from vector to set to avoid repeated service entries.
- routing_manager_stub
- Send a `config_command` to share the _client hostname with the _target application. the
config_command message is only sent after the routing_info is sent, thereby guaranteeing
that the routing_info is processed first.
- Send ADD_CLIENT command to all the client registered, without considering if they are
requesting services from this client.
- routing_manager_base
- Added a change to add_known_client so that the order of calling config_command and
routing_info_command would not matter. This change only has impact when the clients adds itself
as a known_client and was made to safeguard its hostname.
- endpoints
- local comunication
- Force endpoint to perform port assignment when local network interface becomes unavailable.
- Check on local_tcp_client and local_uds_client if socket is open before sending.
- Do not call shutdown_and_close_socket if socket state is connecting - race condition
- A condition variable was implemented on local-tcp_client endpoint to notify the stop process
to exit the 10ms wait if an EOF is received in receive_cbk, since the queue is cleared in this case.
- Ensuring the lifetime of message_buffer_ptr on uds.
- external communication
- A state machine was created to cascade the stop -> init + start The goal was to ensure that
the udp_server endpoint waits on both unicast and multicast stop, and after they are both stopped,
and the flag restarting is set, the init and start can be called. (issue: Bad File Descriptor)
- Syncronize the join and leave process of udp server multicast sockets. also (issue: in some situations
after STR, vsomeip will not join the multicast group used by service discovery).
- leave and join multicast address only starts when network is ready. (issue: join/leave multicast was
causing CPU load, because this process starts when network is not ready).
- Remove use of linger-with-timeout in tse, which fixes blocking socket operations
- Ensure "shutdown_and_close" is called on "stop".
- local and external communication
- Endpoints would start every time find_or_create_local would execute, even if endpoint already existed.
- Fix is_sending_ status
- Increase mutex_ scope to include was_not_connected flag on connect (issue: REMOTE_ERROR on response)
- cancel_and_connect_cbk was updated to only report the connection as successfully terminated when
cancel_and_connect_cbk is called without error. Previously, it was reporting the connection as successfully
terminated even when there was a connection error, preventing the endpoint from being.
restarted.
- netlink
- Removes the interface index when we get a RTM_DELLINK.
- Added an option to consider the reset of sd_route_set_ when interface goes down. This is enabled by default.
- security
- For each received response/notification, call is_client_allowed_to_offer to check whether the sending client
is allowed to offer the service. This is done only for internal TCP communication; for UDS the check is done
with the bound client.
- service discovery
- Fix multicast threshold for initial events.
- Stop find/offer debounce timers when the service discovery is stopped.
- Added a mecaism on start of SD, to try rejooin the multicast address if any message was received by 1.1s
(default timer) (issue: in some situations after STR, vsomeip will not join the multicast group used by
service discovery).
- IO threads
- To mitigate IO threads exit and stalled threads, a solution in which the io_context object processing is
ran for determined duration was developed. This feature is disable by default and can be enable by
configurations.
- configurations
- Added configuration to enable io thread mitigation.
- Enable configuration of client-specific debouncing.
- Allow global configuration of maximum (additional) dispatchers and dispatch time.
- Unspecify catch exception for boost exceptions.
- Added configuration to consider the reset of sd_route_set_ when interface goes down. This is enabled by
default.
- Enable global configuration of request debounce time.
- Support multiple IPsec activation files per connection.
- application_impl
- Fix host assignment with non-local routing: add SO_REUSEADDR to the non-local routing host check
- runtime
- Remove the get_mutex_ from runtime_impl - This mutex is not needed, as the static initialization of the
shared_ptr is atomic. (issue: tombstone in application shutdown)
v3.5.5
- Fix build issue on Ubuntu 24.04
- Fixing change that was introduced on Fix for Find messages commit
- Changing mandatory configuration files parsing method
- Testing possible missing break
- reset force_initial_events
- Reintroduce VSOMEIP_CONFIG
- Enable partial valgrind subprocess tracking
- Ensure endpoint survives send operation
- Avoid hanging request service commands
- Fix initial event tests
- Ensure state value before send_pending_commands
- Clean-up service info on registration
- Add and expose settings for SD find debounce as config options
- Simplify "Add and expose settings for SD find debounce as config options"
- Consistently use uid_t/gid_t for credentials
- Skip valgrind initialevents network test
- Fix NSM logs with empty Container Id strings
- Fix issue on STR re registration for local tcp
- Fix data race due to multiple multicast SD message timeouts
- Remove leftover routing_info_entry_e
- Remove patches applied as fix
- Fix reboot on vnet toggle
- check client queue_size first
- Add helgrind dubious locks suppresses
- Reintroduced server endpoints restart on resume
- Ensure service offers after route toggling
- Add a keepalive mechanism to the routing_manager_client
- fix failures on external_local_routing_test
- Make local client keep alive mandatory
- Use variable linger for local TCP
- fixing vsomeip install without vsomeip_ctrl
- Fix port format
- Add vsomeip_device.json to mandatory files
- Revert Fix NSM logs with empty Container Id strings
v3.5.4
- Update documentation
- Fix possible dangling pointer
- Add strand to send_cbk call to prevent data races on sockets
- wireshark_plugin update send command
- Documentation add some default values
- Fix Find messages with Unicast Flag set to 0
- fix max remote subscription limit
- fix race condition on lazy_load_test
- Avoid locking while joining multicast group
- Add precondition to offer_stop_offer
- Delete twice definition of port_t in primitive_types.hpp
- Fixing dereference issues
- Integration of Suspend/Resume related fixes
v3.5.3
- Add timeout for detached threads
- Update wireshark dissector
- fix race condition on boost async operations
- Fix core dump back traces
- Enabled initial event tests
- Add vsomeip config parsing
- Whitelist initial events tests
- Adds on_register_application_ack
- Suspend resume tests fix
- add service and method ids to the clients_ array
- Fix capturing references to stack variables
- Protects receiver_ and lock to routing stop function
- Add include unordered map
- Add remove local in deregistration(rmi)
- protect deserialization from malicious input
- Ignore send_cbk if the socket is not connected
- Move suspend/resume of endpoints
- Change handling of availabilities for wildcasts
- Allow to configure the initial routing state
- Enable subscription expiration
- Fixed if-guard name
- Remove redundant ostream manipulators sync update
- Fix capturing references to stack variables
- Log offers on first occurrence in routing manager
v3.5.2
- Revert fix compile issue with pthreads in android commit
- Revert Force abort hanging detached threads commit
- Remove dead code path
v3.5.1
- Restructure Network Tests CMakeLists
- policy.cpp unit test
- Remove deprecated usage of byteorder and use bithelper
- unblock endpoint when closing it
- Find_Debounce_Time made configurable
- Check if configuration_ pointer exists before using
- Initialize routing_state_
- Solved data race in configuration_impl class
- utility.cpp unit tests
- unit tests payload_impl
- unit tests serializer
- unit tests deserializer
- Unit Tests for policy_manager_impl.cpp
- Unit Test - Routing Manager set_routing_state
- Move documentation to markdown
- clang-format to verify the code vsomeip-lib
- fix deadlock with event and message debounce feature
- disabled some groups of tests
- Try to force connection reset on suspend
- Call availability handler on request service instance
- Handle endpoint queue size underflow
- Add Valgrind massif tool
- Create new train after scheduling to avoid duplicate messages
- Re-Added offer_tests group in all sanitizers tests
- removed extra DLT logs of the policies print
- COVESA-615: vsomeip.lck file not removed upon application termination
- COVESA-527: Locally switch off -Wstringop-overflow
- Create network regression test for specific issue
- Change IndentPPDirectives rule in clang-format
- applied auto in some identified lines by sonarqube
- Add Valgrind memcheck
- Ensure buffer is valid before de-referencing pointer
- Renaming folder test and fixing typos
- Fix minor formatting issues from some commits
- Adds interger overflow check
- Adds application name on cout logs
- Adding helgrind, to test output
- Boost 1.65 cleanup
- network_test - Offer Stop Offer test
- Support host name (env) for internal TCP communication
- Remove cached configuration after app stops
- Optimize tests/network-tests/CMakeLists.txt
- Check if pointer exists before dereferencing it
- avoid requiring valgrind locally
- Fix Lock-Order-Inversion in policy_manager_impl
- Revert "Fix to not ignore stop offers when sd acceptance is not required"
- Fix timeout on offer_stop_offer test
- Restore config_plugin_impl mutex
- Rework [STOP_]OFFER command handling
- some-tp memory consumption increasing fast
- Remove dlt traces from memory_test
- restart_routing_test enabled
- Fix cyclic events
- Tracing LOI
- improve connection log on error path
- added subscribe_notify groups to non-leak verification
- Relocate hostname config command
- allow subscribeACK if at least one offer was sent by SD
- Improve "end of file" error handling
- Update Clang-Format to Version 18
- Debounce tests fix
- Wireshark dissector for vsomeip protocol
- Remove logging on operation cancel in connect_cbk
- Add additional info on failure to open TCP port
- Implementation of SOMEIPSD_00577
- Refactor how niceness values are applied to threads
- prevent race between event expiration/forwarding
- Fix subscribe_notify_one tests
- Fix missing/blocked subscription requests
- change references to C++14 into C++17
- Explicitly check whether an endpoint is in use
- Enabled all network tests with whitelist
- Fix target client id in local_send
- remove redundants package import definitions
- run unit tests on windows
- Fix debounce network tests
- type upgrade and temporary disable of test for QNX build
- Force abort hanging detached threads
- Application tests fix
- Remove behavior from catch block in ~message
- Stop/Start (network) endpoints on suspend/resume
- Reduce the number of copy operations on event payloads
- Sets linger to 0 in local tcp clients
- Prevent exception re-throw in ~message
- remove linger on local_tcp
- Fix android traces build
- Introduce stateful availability handler
- Update the availability state
- Reintroduces the TIME_WAIT for ltcei
- Faster handlers lookup
- Increase app registration timeout
- Force endpoint restart if re registering
- fix semaphore logs
- fix compile issue with pthreads in android
- Disabling set routing state unit test
- Fixing get_policy_manager error with security disabled
v3.5.0
- Load Policies Lazy Load
- Test - Processing SD messages with unknown type option
- ensure endpoints before deletion
- Improve "end of file" error handling
- Enable debouncing of events & selective events
- Revert "Test - Processing SD messages with unknown type"
- Logs added to points of failure on registration process
- One *.json to ignorem all
- Someip-tp remote address rework
- Fix crash in multicast_receive receive_cb
- Generate network_test configs directly to build
- Fix deadlock if binding of TCP client endpoint fails
- Added missing includes of iomanip to support compilation on Mint
- Cache not yet registered events
- Return true to make sure endpoints are deleted
- Byteorder implementation
- Reorder of prepare_stop method
- Allows applications in the same process using different security configurations
- Fix to not ignore stop offers when sd acceptance is not required
v3.4.10
- Fix QNX build
- Fix missing Stop Offer
- Apply extra fixes to QNX environment
- Remove key <service, instance> from the offer_commands_
- COVESA#478: deleted unused param _use_exclusive_proxy
- Fix code smell related to condition variable
- COVESA#462: Fix IPv6 Service Discovery
- Added multicast_mutex to async function that makes use of multicast socket
- COVESA#479: Allow service_discovery to continue without random_device
- Fix availability handler sending false on offer
- Set host/port in vsomeip_sec_client_t whenever possible
- Use executor_work_guard instead of io_context::work for boost v1.66 and higher
- Update Windows build
- Added profile 07 as an option for E2E protection
- ASIO: use heap-allocation to avoid using garbage data
- Fix integer underflow in server_endpoint_impl.cpp
- Cleanup prepare_stop_handlers_
- Automatic unsubscribe
- Debounce now works without routingmanagerd running
- Debouncing: Send last received value after debounce time + X
- Fix resource deadlock avoided crash
- Use closure instead of callable struct
v3.4.9
- Merge COVESA PR447 with support for QNX 7.1
- Merge COVESA PR470 with changes to not instantiate
a non existent type for boost < 1.66.0
- Merge COVESA PR515 with changes that remove not used lines
v3.4.8
- Adds debounce_filter_tests json files to gitignore
- Adds check for null serviceinfo
- Implementation of debounce frequency test
- Accept malformed StopSubscribe/Subscribe messages
- security: Fix security library name
- Also remove service instance from map of pending offers
- enforce lock acquisition order to avoid LOI
- Improved logs
v3.4.7
- Do _NOT_ try to serialize empty names
- Avoid crash on access to invalid position from tcp_endpoint buffer
- Fix security library name
- revert std::move usage in train buffer's
- Fix deadlock in mutex_
v3.4.6
- check if a policy exist in the vector of policies
- Crash in process vsomeipd crash id: D8DF38B19EEBC79D
- Enable guest port configuration per uid/gid
v3.4.5
- Implementation of new debounce filter test
- test availability when double offering service
- network test fixes
- Try to synchronize subscribe/unsubscribe/resubscribe
- Add vsomeip_portcfg.json to the list of mandatory configuration files
- Check buffer before accessing it
- Rework condition for starting the send operation for client endpoint
- Avoid spamming the log
- Extend security interface to enable syncing security clients
- Revert get_local_port() behaviour
v3.4.4.1
- manually reset tables for unavailable services on suspend state
v3.4.4
- Fix deadlock if binding of UDP client endpoint fails
- Changed local_tcp_client endpoint connect to async connect.
- Change shutdown sequence
- vSomeIP Security: Update vsomeip_sec
v3.4.3
- Fixed race between incoming subscription and StopOffer/Offer
v3.4.2
- Removed local_port_ attribute
v3.4.1
- Rename the new "register_message_handler" overload function
- Set the Client identifier when sending pong command
v3.4.0
- Allow to register multiple message handlers for the same message
- load_security_policy_extensions Unit and Benchmark Tests
- Fix is_local flag for acl acceptance msg
- Fix registration issues regarding connecting timeout
v3.3.8
- Check buffer size when serializing/deserializing event registrations
- Remove leftovers from shm usage
- Avoid using uninitialized variable
- Displays lib version when starting any app
v3.3.7
- Fix handling of endpoint options
- Fix build on Windows
- Fix client-side logging filters
- Rework in event::set_payload
- Release no longer in use client endpoints
- Rework condition for starting the send operation
- Verify if the event is shadow
v3.3.6
- The "last forwarded" timestamp must be handled per event
- Fix deadlock
- Restart the connection on broken unix sockets
- Fix routing root not binding to local tcp if
- Rework connecting timeout
v3.3.5.1
- Fix typo in application_impl.cpp
- Update load_balancing_option_impl.cpp
- Fix format specifier in memory_log_timer_cbk
- Prevent boost symbols from leaking into global namespace
- Remove redundant ostream manipulators
- Fix for configuration option deserialize bug
- Accept return codes within range 0x20 - 0x5E as valid
v3.3.5
- Do NOT use iterators in asynchronous operations.
- Add event identifier to "REGISTER EVENT" log message at routing manager stub.
- Fix for crash in flush function, server_endpoint_impl class
- added FD_CLOEXEC flag in all open operations
- Use "make_unique" and "make_shared" to construct "unique_ptr" and "shared_ptr"
- Removed redundant pairs of parentheses
- Do not erase while iterating.
- Changed invalid call of deserialize to serialize
- Fixed the the problem in policy::deserialize counts down the given policy size,
and after deserializing the policy it is 0.
- Monitor session IDs in SD messages and log missing IDs
- Fix timestamp format of log message
- Prevent crash when logging with DLT
- load_security_update_whitelist Unit and Benchmark Tests
- Added protection when a message is destroyed
- Pu/connect timeout refactor
- Rework the addition of services when in suspended mode
- Remove const qualifier from function return types
- Adapt to boost 1.81.0
v3.3.4
- Removed VSOMEIP_DEPRECATED_UID_GID from some elements.
- Add nullptr guards to receive_cbk.
- Add nullptr check to receive_cbk.
- Fix network test build for g++11.3.
- Remove mutexes from logger_impl and security_impl.
- Fix VSOMEIP_LOCAL_CLIENT_ENDPOINT_RECV_BUFFER_SIZE buffer.
- Fix range-loop-construct warning for g++11.3.
- Implementation of support for header-only tracing.
- Fix applied regarding the timeout in endpoints connections.
- Use standard reliability_type_e on service_discovery_impl.
- Added receive operation for UDP server endpoints.
- Reduce log level of some vsomeip messages.
- Change dependency on LINK UP.
- Change rejoining mechanism in UDP server endpoint.
v3.3.3
- Fixed android build issues
- Added more DLT log info on credentials error
- Fixed ICON register issues.
- Added an unlocked method to get the policy extension path
v3.3.2
- Manage E2E Profile04 counters per instance
- Fix handling of subscription objects during unsubscribe.
- Remove subscription on connection resets.
- Reuse local client ports.
- Add try block in message deserialization.
- Remove unneeded / unused structure servicegroup.
- Optimize event/field registration.
- Add dependency from network tests to e2e library (plugin).
- re-introduce the definition of socket timeout.
- pu/event-tests: Avoid deadlock.
- Linux: avoid static initialization of std::mutex.
- Improve robustness when stopping initial-event tests.
- Fixed various unused-variable warnings.
- Handling with some udp errors in send_cbk process.
- Avoid services becoming available when the daemon is suspended.
- refactor: remove `set_bound_sec_client()` from `local_tcp_server_endpoint_impl`.
v3.3.1
- Refactor `plugin_manager_impl::load_symbol()`
- Use consistent naming for `security::is_client_allowed_to_access()`
- Raise C++ standard used to C++17 on non-Windows platforms
- Prefer using reinterpret_cast instead of C-style casts
- DRYer approach to loading `libvsomeip_sec` hook functions
- Indent with 4-spaces
- Hide `symbol_table` inside `security::load()`
- `policy_manager::get()` should call `policy_manager_impl::get()`
- Fix integer conversion warning
- Refine silencing MSVC warning C4101
- Add `VSOMEIP_DISABLE_SECURITY` in a few remaining spots
- Add support for `vsomeip_sec_client_t` to subscription handlers
- Disable security unit/benchmark tests when `DISABLE_SECURITY`
- Disable security network tests when `DISABLE_SECURITY`
- Make the sec client a member of the connection
- Add support for TCP clients in the default security hooks
- Fix security checks when using internal TCP sockets
v3.3.0
- Introduced protocol classes
- Extended interface to allow application specific configurations
- Allow to switch off internal routing
- Added ACL plugin
- Respect subscription status handler for ANY_EVENT
- Corrected handling of ANY_[SERVICE|INSTANCE|EVENTGROUP|EVENT] when handling subscription status
- Fix handling of lock files
- Add subnet support for IPv6 networks (boost 1.66+ only for now)
- Fix client specific debouncing
- Set SO_REUSEADDR before binding socket
- Specify local IP/interface when joining multicast group
- Avoid false positives when warning about not having loaded acceptance data
- Extended buffer size adaptation for UDP sockets
- Removed leftover from attempt to fix setsockopt blocking
- Implemented a cache for is_client_allowed
- Adapted version in OSS information
- Log errors (connection reset, end of file, bad descriptor) as such
- Rename extended "subscribe" method to "subscribe_with_debounce"
v3.2.15
- Unit/Benchmark tests for Security::Check Credentials
- Client dependent usage of session handling
- Fix Windows build
- Fix for multicast_socket bug
- Fixed spam messages of security policy extensions
- Added OSS information for RSE
v3.2.14
- Implementation of support for header-only tracing
- Replaced exceptions with error messages
- Asynchronously set join/leave options
- React on failed option setting
- Prevented StopSubscribe/Subscribe on first offer reception
- Implemented a cache for is_client_allowed operations
v3.2.13
- Fixed lock_guard and mutexes on lazy load policies
v3.2.12
- Fixed race condition on startup of suspend_resume_test
- Added a default initialize in tcp_client_endpoint_impl::is_sending
- Updated the log "Maximum number of dispatchers exceeded"
- Refactored the policy extensions map
- Added protection for Received buffer size and buffer capacity
- Added nullptr checks to some pointers in the eventgroupinfo
- Fixed Windows build
- Removed print error messages for unneeded endpoints
- Wrapped accept method to use accept4
- Improved reliability of multicast leave group
v3.2.11
- Fix incorrect load of policies
- Fix unlocked access to multicast_info
- Rework the join mechanism.
- Fix receiving of routing info messages in TCP mode.
- Make routing client port range configurable ("routing-client-ports").
- Allow to configure event update properties.
v3.2.10.1
- Fix false positive security warning
v3.2.10
- Fix race condition which could lead to not establishing a TCP
connection to a remote service
v3.2.9
- Send StopSubscribe and clear subscribed_ map on STR
- Added suspend/resume test
- Erase subscribed_ map on received StopOffer
- Select new local port on bind error for uce
v3.2.8
- Fixed credentials::receive_credentials() error handling
- Ensured to call prepare_stop handler for TCP server endpoints
v3.2.7
- Fixed lock order inversion
v3.2.6
- Adapted helloworld references within user guide
- Added nullptr check for remote subscription pointers
v3.2.5
- Fixed race condition in client endpoint send queue
- Improved robustness when receiving malformed remote subscriptions
- Cleanup remote subscribers on suspend
- Make sure that the connection (and thus the policy loading)
has taken place before checking something against the policies
v3.2.4
- Removed load of the vsomeip_ext policies from the start
- Allow to partition service instances. Each partition uses a separate client
port, even if service instances from different partitions are offered on the
same server port of a remote device.
- Fixed timer restart (detection of last received SD message)
- Optimized distribution of credentials- Improve handling of expired subscriptions
- Fix event payload caching at proxy
- Select a free client port that was not used recently
- Fixed invalid insertion in known_clients_ map
- Fixed clearing of client endpoints
- Rework for expire_subscriptions()
- Rework map insertions
- Avoid deadlocks during expiration of subscriptions
v3.2.3
- Optimized updating the sent counter for FindService messages in requested_ map
- Improved log messages
- Enabled tracing for initial values of shadow events for subsequent subscribers.
- Reduced the vsomeip security logging
- Fixed race condition in the logger
- Fix for initial events
- Fixed crash in TCP client endpoint
- Fixed TCP socket bind error handling
- Selected new local port on bind error for tce.
- Ignored subscribes when suspended
- Added subscriber count to log / extended config switches
- Limited subscriptions to same service, instance, eventgroup depending on remote IP
- Synchronized update_remote_subscription / send_(un)subscription()
- Fixed lazy loading on daemon
v3.2.2
- Fixed the loading of the security policies at the start
- Fixed the tags in the android logging
- Added the additional client ports in the ipsec-plugin default configuration
- Removed the unneeded socket option IPPROTO_IP/IPPKTINFO.
- Removed the libdlt dependency from android
- Improved the documentation of debouncer configuration.
- Check the port to send notifications
- Fixed the nullptr on multicast_socket
- Improved the sending of STOP_OFFER messages
v3.2.1
- Updated cmake minimum required version
- Fixed expire_subscriptions(address)
- Updated examples
- Ensured to clear previous error before calling dlsym (plugin_manager)
- Always send values after subscription acknowledgment-
- Added support to logs in Android
- Updated android build files
- Ensured to forward logs to DLT independently of FILE / CONSOLE log configuration
- Avoided heap-buffer-overflow in look_ahead() when deserializing SD entry
- Adapted the reader of the config to put always logging in Android
- Used error code when starting main phase timer
- Added some SomeIP/TP optimization
- Changed the loglevel for blocked incoming notifications
- Restarted UDP client endpoint on connection refused error
- Acquired mutex before change sd_acceptance_rules_active_
- Fixed getEnv returning empty value
v3.2.0
- Dropped support for boost 1.65 and below
- Do not lock the multicast mutex twice
- Disable warnings for boost and DLT headers
- Fix security credentials update in rm::proxy
- Prevent deletion of server endpoint
- Fix instance removal in local_services_history_ map
- Lazy load security policies
- Use a configuration variable for the SOME/IP-TP maximum segment length
- Use instance based SOME/IP-TP configuration
- Use service configuration within server endpoint
- Ensure maximum segment length is a multiple of 16 (SIP_RPC_772)
- Use configured separation times
- Added debounce test and refined debouncing
- Fix hostname transmission
- Do _NOT_ remove subscription on a received StopOffer
- serviceinfo: Removed unused & undefined member group_
- Implemented socket wrapper using ld(1)'s "--wrap"
- Set the android LOG_TAG to VSIP
- Added message statistics
- Reworked android logging
v3.1.18
- 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
v3.1.17
- 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).
v3.1.16
- Fixed race condition when leaving multicast group
- Do not busy loop when receiving garbage data on local endpoint
v3.1.15
- 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
v3.1.14
- Fixed race conditions (application registration, subscription)
v3.1.13
- 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
v3.1.12
- 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.
v3.1.11
- Preparation for new IPsec plugin (3.1.1)
v3.1.10
- 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
v3.1.9
- Fix race condition when processing multicast messages
v3.1.8
- Fix deadlock when sending messages
- Fix race condition when processing SD messages
v3.1.7
- 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)
v3.1.6
- 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
- Log buffer fill levels if they exceed a configurable threshold (default=67%).
v3.1.5
- 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.
v3.1.4
- 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
v3.1.3
- Set client ID to 0x0 for SOME/IP SD messages
v3.1.2
- 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.
v3.1.1
- Ensure sending StopOffers for services specified with a different
protocol than someip in the configuration.
- Add support for boost v1.70 and v1.71.
v3.1.0
- Integrate changes of 2.14.12 - 2.14.18
- 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
v3.0.0
- 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.
- 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