Skip to content

Commit 91805d8

Browse files
vsomeip 3.4.9-r1 (#529)
Notes: v3.4.9-r1 - 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 - Fix missing Stop Offer - Apply extra fixes to QNX environment 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
1 parent 538f9fc commit 91805d8

File tree

417 files changed

+5367
-1921
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

417 files changed

+5367
-1921
lines changed

.gitignore

Lines changed: 167 additions & 102 deletions
Large diffs are not rendered by default.

Android.bp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ cc_library_shared {
8080

8181
cflags: [
8282
"-DWITHOUT_SYSTEMD",
83-
"-DVSOMEIP_COMPAT_VERSION=\"3.3.8\"",
83+
"-DVSOMEIP_COMPAT_VERSION=\"3.4.9\"",
8484
"-DVSOMEIP_BASE_PATH=\"/vendor/run/someip/\"",
8585
"-DUSE_DLT",
8686
],

Android.mk

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ LOCAL_CFLAGS := \
100100
-frtti \
101101
-fexceptions \
102102
-DWITHOUT_SYSTEMD \
103-
-DVSOMEIP_VERSION=\"3.3.8\" \
103+
-DVSOMEIP_VERSION=\"3.4.9\" \
104104
-DVSOMEIP_BASE_PATH=\"/vendor/run/someip/\" \
105105
-Wno-unused-parameter \
106106
-Wno-non-virtual-dtor \
@@ -147,7 +147,7 @@ LOCAL_CFLAGS := \
147147
-frtti \
148148
-fexceptions \
149149
-DWITHOUT_SYSTEMD \
150-
-DVSOMEIP_VERSION=\"3.3.8\" \
150+
-DVSOMEIP_VERSION=\"3.4.9\" \
151151
-DVSOMEIP_BASE_PATH=\"/vendor/run/someip/\" \
152152
-Wno-unused-parameter \
153153
-Wno-non-virtual-dtor \
@@ -194,8 +194,8 @@ LOCAL_CFLAGS := \
194194
-frtti \
195195
-fexceptions \
196196
-DWITHOUT_SYSTEMD \
197-
-DVSOMEIP_VERSION=\"3.3.8\" \
198-
-DVSOMEIP_COMPAT_VERSION=\"3.3.8\" \
197+
-DVSOMEIP_VERSION=\"3.4.9\" \
198+
-DVSOMEIP_COMPAT_VERSION=\"3.4.9\" \
199199
-DVSOMEIP_BASE_PATH=\"/vendor/run/someip/\" \
200200
-Wno-unused-parameter \
201201
-Wno-non-virtual-dtor \

CHANGES

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,71 @@
11
Changes
22
=======
3+
4+
v3.4.9
5+
- Merge COVESA PR447 with support for QNX 7.1
6+
- Merge COVESA PR470 with changes to not instantiate
7+
a non existent type for boost < 1.66.0
8+
- Merge COVESA PR515 with changes that remove not used lines
9+
10+
v3.4.8
11+
- Adds debounce_filter_tests json files to gitignore
12+
- Adds check for null serviceinfo
13+
- Implementation of debounce frequency test
14+
- Accept malformed StopSubscribe/Subscribe messages
15+
- security: Fix security library name
16+
- Also remove service instance from map of pending offers
17+
- enforce lock acquisition order to avoid LOI
18+
- Improved logs
19+
20+
v3.4.7
21+
- Do _NOT_ try to serialize empty names
22+
- Avoid crash on access to invalid position from tcp_endpoint buffer
23+
- Fix security library name
24+
- revert std::move usage in train buffer's
25+
- Fix deadlock in mutex_
26+
27+
v3.4.6
28+
- check if a policy exist in the vector of policies
29+
- Crash in process vsomeipd crash id: D8DF38B19EEBC79D
30+
- Enable guest port configuration per uid/gid
31+
32+
v3.4.5
33+
- Implementation of new debounce filter test
34+
- test availability when double offering service
35+
- network test fixes
36+
- Try to synchronize subscribe/unsubscribe/resubscribe
37+
- Add vsomeip_portcfg.json to the list of mandatory configuration files
38+
- Check buffer before accessing it
39+
- Rework condition for starting the send operation for client endpoint
40+
- Avoid spamming the log
41+
- Extend security interface to enable syncing security clients
42+
- Revert get_local_port() behaviour
43+
44+
v3.4.4.1
45+
- manually reset tables for unavailable services on suspend state
46+
47+
v3.4.4
48+
- Fix deadlock if binding of UDP client endpoint fails
49+
- Changed local_tcp_client endpoint connect to async connect.
50+
- Change shutdown sequence
51+
- vSomeIP Security: Update vsomeip_sec
52+
53+
v3.4.3
54+
- Fixed race between incoming subscription and StopOffer/Offer
55+
56+
v3.4.2
57+
- Removed local_port_ attribute
58+
59+
v3.4.1
60+
- Rename the new "register_message_handler" overload function
61+
- Set the Client identifier when sending pong command
62+
63+
v3.4.0
64+
- Allow to register multiple message handlers for the same message
65+
- load_security_policy_extensions Unit and Benchmark Tests
66+
- Fix is_local flag for acl acceptance msg
67+
- Fix registration issues regarding connecting timeout
68+
369
v3.3.8
470
- Check buffer size when serializing/deserializing event registrations
571
- Remove leftovers from shm usage

CMakeLists.txt

Lines changed: 26 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (C) 2015-2017 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
1+
# Copyright (C) 2015-2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
22
# This Source Code Form is subject to the terms of the Mozilla Public
33
# License, v. 2.0. If a copy of the MPL was not distributed with this
44
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
@@ -10,9 +10,9 @@ set (VSOMEIP_NAME vsomeip3)
1010
set (VSOMEIP_COMPAT_NAME vsomeip)
1111

1212
set (VSOMEIP_MAJOR_VERSION 3)
13-
set (VSOMEIP_MINOR_VERSION 3)
14-
set (VSOMEIP_PATCH_VERSION 8)
15-
set (VSOMEIP_HOTFIX_VERSION 0)
13+
set (VSOMEIP_MINOR_VERSION 4)
14+
set (VSOMEIP_PATCH_VERSION 9)
15+
set (VSOMEIP_HOTFIX_VERSION 1)
1616

1717
set (VSOMEIP_VERSION ${VSOMEIP_MAJOR_VERSION}.${VSOMEIP_MINOR_VERSION}.${VSOMEIP_PATCH_VERSION})
1818
set (PACKAGE_VERSION ${VSOMEIP_VERSION}) # Used in documentation/doxygen.in
@@ -68,7 +68,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
6868
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
6969
# This is only relevant for GCC and causes warnings on Clang
7070
set(EXPORTSYMBOLS "-Wl,-export-dynamic -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exportmap.gcc")
71-
set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -pie -Wl,-z,relro,-z,now")
71+
set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -pie -Wno-tsan -Wl,-z,relro,-z,now")
7272
endif()
7373

7474
set(NO_DEPRECATED "")
@@ -412,19 +412,36 @@ endif()
412412
if (BASE_PATH)
413413
set (VSOMEIP_BASE_PATH ${BASE_PATH})
414414
endif ()
415+
415416
set (VSOMEIP_DIAGNOSIS_ADDRESS "0x01")
416417
if (DIAGNOSIS_ADDRESS)
417418
set (VSOMEIP_DIAGNOSIS_ADDRESS ${DIAGNOSIS_ADDRESS})
418419
endif ()
420+
419421
set (VSOMEIP_UNICAST_ADDRESS "127.0.0.1")
420422
if (UNICAST_ADDRESS)
421423
set (VSOMEIP_UNICAST_ADDRESS ${UNICAST_ADDRESS})
422424
endif ()
425+
423426
set (VSOMEIP_ROUTING_READY_MESSAGE "SOME/IP routing ready.")
424427
if (ROUTING_READY_MESSAGE)
425428
set (VSOMEIP_ROUTING_READY_MESSAGE ${ROUTING_READY_MESSAGE})
426429
endif ()
427430

431+
set (VSOMEIP_LOCAL_TCP_PORT_WAIT_TIME 100)
432+
if (LOCAL_TCP_PORT_WAIT_TIME)
433+
set (VSOMEIP_LOCAL_TCP_PORT_WAIT_TIME ${LOCAL_TCP_PORT_WAIT_TIME})
434+
endif ()
435+
436+
set (VSOMEIP_LOCAL_TCP_PORT_MAX_WAIT_TIME 10000)
437+
if (LOCAL_TCP_PORT_MAX_WAIT_TIME)
438+
if (${LOCAL_TCP_PORT_MAX_WAIT_TIME} GREATER ${LOCAL_TCP_PORT_WAIT_TIME})
439+
set (VSOMEIP_LOCAL_TCP_PORT_MAX_WAIT_TIME ${LOCAL_TCP_PORT_MAX_WAIT_TIME})
440+
else ()
441+
set (VSOMEIP_LOCAL_TCP_PORT_MAX_WAIT_TIME ${LOCAL_TCP_PORT_WAIT_TIME})
442+
endif ()
443+
endif ()
444+
428445
set(DEFAULT_CONFIGURATION_FOLDER "/etc/vsomeip" CACHE PATH "Default configuration folder")
429446
message(STATUS "Default configuration folder: ${DEFAULT_CONFIGURATION_FOLDER}")
430447

@@ -434,6 +451,9 @@ message(STATUS "Default configuration file: ${DEFAULT_CONFIGURATION_FILE}")
434451
message("Predefined base path: ${VSOMEIP_BASE_PATH}")
435452
message("Predefined unicast address: ${VSOMEIP_UNICAST_ADDRESS}")
436453
message("Predefined diagnosis address: ${VSOMEIP_DIAGNOSIS_ADDRESS}")
454+
message("Predefined wait times for internal communication ports (TCP):\
455+
${VSOMEIP_LOCAL_TCP_PORT_WAIT_TIME}\
456+
(max=${VSOMEIP_LOCAL_TCP_PORT_MAX_WAIT_TIME})")
437457

438458
################################################################################
439459
# Installation
@@ -632,126 +652,9 @@ add_subdirectory( tools )
632652
add_custom_target( examples )
633653
add_subdirectory( examples EXCLUDE_FROM_ALL )
634654

635-
##############################################################################
636-
# Test section
637-
##############################################################################
638-
639-
##############################################################################
640-
# google benchmark
641-
find_package(benchmark)
642-
643-
##############################################################################
644-
# google test
645-
646-
# check for set environment variable
647-
if(${GTEST_ROOT} STREQUAL "n/a")
648-
message(STATUS "GTEST_ROOT is not defined. For building the tests the variable
649-
GTEST_ROOT has to be defined. Tests can not be built.")
650-
# early exit
651-
return() # test can not be build -> make commands build_tests and check are not available
652-
else()
653-
message(STATUS "GTEST_ROOT is set. gtest root path set to ${GTEST_ROOT}")
654-
endif()
655-
656-
# build google test as static library (always) -> therefore deactivate BUILD_SHARED_LIBS in case it is active
657-
set(BUILD_SHARED_LIBS_AUTOMATIC_OFF 0)
658-
if ("${BUILD_SHARED_LIBS}" STREQUAL "ON")
659-
set(BUILD_SHARED_LIBS OFF)
660-
set(BUILD_SHARED_LIBS_AUTOMATIC_OFF 1)
661-
endif()
662-
add_subdirectory(${GTEST_ROOT} ${CMAKE_CURRENT_BINARY_DIR}/gtest EXCLUDE_FROM_ALL)
663-
if ("${BUILD_SHARED_LIBS_AUTOMATIC_OFF}" STREQUAL "1")
664-
set(BUILD_SHARED_LIBS ON)
665-
set(BUILD_SHARED_LIBS_AUTOMATIC_OFF 0)
666-
endif()
667-
668-
669-
670-
##############################################################################
671-
# build tests
672-
673-
enable_testing()
674-
SET(TESTS_BAT "OFF" CACHE BOOL
675-
"Controls whether only BAT tests should be build or not")
676-
SET(TEST_SYMLINK_CONFIG_FILES "OFF" CACHE BOOL
677-
"Controls if the json and scripts needed needed to run the tests are copied or symlinked into the build directroy (ignored on Windows)")
678-
SET(TEST_SYMLINK_CONFIG_FILES_RELATIVE "OFF" CACHE BOOL
679-
"Controls if the json and scripts needed needed to run the tests are symlinked relatively into the build directroy (ignored on Windows)")
680-
681-
SET(TEST_IP_DEFAULT_VALUE "XXX.XXX.XXX.XXX")
682-
SET(TEST_IP_MASTER "${TEST_IP_DEFAULT_VALUE}" CACHE STRING
683-
"The IP address of the interface which will act as test master")
684-
SET(TEST_IP_SLAVE "${TEST_IP_DEFAULT_VALUE}" CACHE STRING
685-
"The IP address of the interface which will act as test slave")
686-
687-
if((${TEST_IP_MASTER} STREQUAL ${TEST_IP_DEFAULT_VALUE}) OR
688-
(${TEST_IP_SLAVE} STREQUAL ${TEST_IP_DEFAULT_VALUE}))
689-
message(WARNING "TEST_IP_MASTER and/or TEST_IP_SLAVE isn't set. "
690-
"Remote tests cannot be run. "
691-
"To enable, please specify for example "
692-
"-DTEST_IP_MASTER=10.0.3.1 -DTEST_IP_SLAVE=10.0.3.2")
693-
endif()
694-
695-
SET(TEST_IP_SLAVE_SECOND "${TEST_IP_DEFAULT_VALUE}" CACHE STRING
696-
"The second IP address of the interface which will act as test slave")
697-
set(TEST_SECOND_ADDRESS "OFF" CACHE BOOL
698-
"Controls whether second address tests should run or not")
699-
700-
if(${TEST_IP_SLAVE_SECOND} STREQUAL ${TEST_IP_DEFAULT_VALUE})
701-
message(WARNING "TEST_IP_SLAVE_SECOND isn't set. "
702-
"Test with more than one IP address on same interface is not enabled."
703-
"Please specify them via for example "
704-
"-TEST_IP_SLAVE_SECOND=10.0.3.126")
705-
else()
706-
set(TEST_SECOND_ADDRESS "ON")
707-
endif()
708-
709-
set(TEST_E2E_PROFILE_04 "ON")
710-
711-
SET(TEST_UID_DEFAULT_VALUE "123456789")
712-
SET(TEST_UID "${TEST_UID_DEFAULT_VALUE}" CACHE STRING
713-
"The User ID of the user running the test: Needed for security")
714-
SET(TEST_GID_DEFAULT_VALUE "123456789")
715-
SET(TEST_GID "${TEST_GID_DEFAULT_VALUE}" CACHE STRING
716-
"The Group ID of the user running the test: Needed for security")
717-
718-
SET(TEST_SECURITY "ON" CACHE BOOL
719-
"Controls whether security tests should run or not")
720-
721-
if((${TEST_UID} STREQUAL ${TEST_UID_DEFAULT_VALUE}) OR
722-
(${TEST_GID} STREQUAL ${TEST_GID_DEFAULT_VALUE}) OR
723-
DISABLE_SECURITY)
724-
message(WARNING "TEST_UID and/or TEST_GID isn't set. "
725-
"Security Tests are not runnable "
726-
"Please specify them for example "
727-
"-DTEST_UID=1000 -DTEST_GID=1000")
728-
SET(TEST_SECURITY "OFF")
729-
endif()
730-
731-
add_custom_target(build_tests)
732-
733-
set(CMAKE_CTEST_COMMAND ctest -V)
734-
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND})
735-
add_dependencies(check build_tests)
736-
737-
add_custom_target(build_network_tests)
738-
add_dependencies(build_network_tests ${VSOMEIP_NAME})
739-
add_dependencies(build_network_tests ${VSOMEIP_NAME}-e2e)
740-
add_dependencies(build_network_tests ${VSOMEIP_NAME}-sd)
741-
add_dependencies(build_tests build_network_tests)
742-
743-
add_custom_target(build_unit_tests)
744-
add_dependencies(build_unit_tests ${VSOMEIP_NAME})
745-
add_dependencies(build_unit_tests ${VSOMEIP_NAME}-sd)
746-
add_dependencies(build_tests build_unit_tests)
747-
748-
add_custom_target(build_benchmark_tests)
749-
add_dependencies(build_benchmark_tests ${VSOMEIP_NAME})
750-
add_dependencies(build_benchmark_tests ${VSOMEIP_NAME}-sd)
751-
add_dependencies(build_tests build_benchmark_tests)
752-
753655
##############################################################################
754656
# add test directory
657+
enable_testing()
755658

756659
add_subdirectory( test EXCLUDE_FROM_ALL )
757660

build_qnx/common.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ CMAKE_ARGS = -DCMAKE_TOOLCHAIN_FILE=$(PROJECT_ROOT)/qnx.nto.toolchain.cmake \
5050
-DINSTALL_INCLUDE_DIR=$(VSOMEIP_INSTALL_ROOT)/usr/include \
5151
-DCPUVARDIR=$(CPUVARDIR) \
5252
-DGCC_VER=${GCC_VER} \
53-
-DVSOMEIP_INSTALL_ROUTINGMANAGERD=ON
53+
-DVSOMEIP_INSTALL_ROUTINGMANAGERD=ON \
54+
-DDISABLE_DLT=y
5455

5556
ifeq ($(GENERATE_TESTS), TRUE)
5657
CMAKE_ARGS += -DENABLE_SIGNAL_HANDLING=1 \

config/vsomeip-local-security.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
{
22
"unicast" : "10.0.3.1",
33
"logging" :
4-
{
4+
{
55
"level" : "info",
66
"console" : "true",
77
"file" : { "enable" : "false", "path" : "/tmp/vsomeip.log" },
88
"dlt" : "false"
99
},
10-
"applications" :
10+
"applications" :
1111
[
1212
{
1313
"name" : "service-sample",
1414
"id" : "0x1277"
1515
},
16-
{
16+
{
1717
"name" : "client-sample",
1818
"id" : "0x1344"
1919
}

config/vsomeip-local-tcp-client.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"unicast" : "192.168.56.101",
33
"netmask" : "255.255.255.0",
4-
"logging" :
4+
"logging" :
55
{
66
"level" : "info",
77
"console" : "true",
@@ -27,14 +27,14 @@
2727
"id" : "0x1346"
2828
}
2929
],
30-
"services" :
30+
"services" :
3131
[
3232
{
3333
"service" : "0x1234",
3434
"instance" : "0x5678",
3535
"unicast" : "192.168.56.102",
3636
"reliable" : { "port" : "30509", "magic-cookies" : false },
37-
"events" :
37+
"events" :
3838
[
3939
{
4040
"event" : "0x0777",
@@ -53,15 +53,15 @@
5353
[
5454
{
5555
"eventgroup" : "0x4455",
56-
"events" : [ "0x777", "0x778" ]
56+
"events" : [ "0x777", "0x778" ]
5757
},
5858
{
5959
"eventgroup" : "0x4465",
60-
"events" : [ "0x778", "0x779" ]
60+
"events" : [ "0x778", "0x779" ]
6161
},
6262
{
6363
"eventgroup" : "0x4555",
64-
"events" : [ "0x777", "0x779" ]
64+
"events" : [ "0x777", "0x779" ]
6565
}
6666
]
6767
}

0 commit comments

Comments
 (0)