Skip to content

Commit

Permalink
vSomeIP 2.2.4
Browse files Browse the repository at this point in the history
  • Loading branch information
juergengehring committed Sep 20, 2016
1 parent 4c5d160 commit 273814c
Show file tree
Hide file tree
Showing 286 changed files with 18,188 additions and 3,412 deletions.
48 changes: 32 additions & 16 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,24 +1,40 @@
/build*/*
/examples/hello_world/build
/.settings
/doc
/implementation/configuration/include/internal.hpp
/test/big_payload_tests/big_payload_test_tcp_client.json
/test/big_payload_tests/big_payload_test_tcp_service.json
/test/configuration_tests/configuration-test.json
/test/configuration_tests/configuration-test-deprecated.json
/test/magic_cookies_tests/magic_cookies_test_client.json
/test/magic_cookies_tests/magic_cookies_test_service.json
/test/payload_tests/external_local_payload_test_client_external.json
/test/payload_tests/external_local_payload_test_client_local.json
/test/payload_tests/external_local_payload_test_service.json
/test/routing_tests/external_local_routing_test_client_external.json
/test/routing_tests/external_local_routing_test_service.json
/build*/*
/examples/hello_world/build
/.settings
/doc
/implementation/configuration/include/internal.hpp
/test/big_payload_tests/big_payload_test_tcp_client.json
/test/big_payload_tests/big_payload_test_tcp_service.json
/test/magic_cookies_tests/magic_cookies_test_client.json
/test/magic_cookies_tests/magic_cookies_test_service.json
/test/payload_tests/external_local_payload_test_client_external.json
/test/payload_tests/external_local_payload_test_client_local.json
/test/payload_tests/external_local_payload_test_service.json
/test/routing_tests/external_local_routing_test_client_external.json
/test/routing_tests/external_local_routing_test_service.json
/test/client_id_tests/client_id_test_diff_client_ids_diff_ports_master.json
/test/client_id_tests/client_id_test_diff_client_ids_diff_ports_slave.json
/test/client_id_tests/client_id_test_diff_client_ids_same_ports_master.json
/test/client_id_tests/client_id_test_diff_client_ids_same_ports_slave.json
/test/client_id_tests/client_id_test_diff_client_ids_partial_same_ports_master.json
/test/client_id_tests/client_id_test_diff_client_ids_partial_same_ports_slave.json
/test/client_id_tests/client_id_test_same_client_ids_diff_ports_master.json
/test/client_id_tests/client_id_test_same_client_ids_diff_ports_slave.json
/test/client_id_tests/client_id_test_same_client_ids_same_ports_master.json
/test/client_id_tests/client_id_test_same_client_ids_same_ports_slave.json
/test/subscribe_notify_tests/subscribe_notify_test_diff_client_ids_diff_ports_master.json
/test/subscribe_notify_tests/subscribe_notify_test_diff_client_ids_diff_ports_slave.json
/test/subscribe_notify_tests/subscribe_notify_test_diff_client_ids_same_ports_master.json
/test/subscribe_notify_tests/subscribe_notify_test_diff_client_ids_same_ports_slave.json
/test/subscribe_notify_tests/subscribe_notify_test_diff_client_ids_partial_same_ports_master.json
/test/subscribe_notify_tests/subscribe_notify_test_diff_client_ids_partial_same_ports_slave.json
/test/subscribe_notify_tests/subscribe_notify_test_same_client_ids_diff_ports_master.json
/test/subscribe_notify_tests/subscribe_notify_test_same_client_ids_diff_ports_slave.json
/test/subscribe_notify_tests/subscribe_notify_test_same_client_ids_same_ports_master.json
/test/subscribe_notify_tests/subscribe_notify_test_same_client_ids_same_ports_slave.json
/test/subscribe_notify_one_tests/subscribe_notify_one_test_diff_client_ids_diff_ports_master.json
/test/subscribe_notify_one_tests/subscribe_notify_one_test_diff_client_ids_diff_ports_slave.json
/test/cpu_load_tests/cpu_load_test_client_slave.json
/test/cpu_load_tests/cpu_load_test_client_master.json
/test/cpu_load_tests/cpu_load_test_service_slave.json
/test/cpu_load_tests/cpu_load_test_service_master.json
126 changes: 126 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
Changes
=======

v1.1.0
- Local communication in multiprocessor environments was fixed
- Runtime access was changed from raw to shared pointer
- vsomeip logger is used whereever possible (replacing std::cerr calls)
- Ensure the logger is not deleted before issueing tha last log message when shutting down
- Fixed shutdown crash by checking the existence of endpoint host before accessing it
- Routing info processing in case of multiple instances of the same service was fixed
- Support for local communication on Windows was added

v1.2.0
- Added (optional) thread pool for distribution of messages to the application
- Made configuration of service groups optional (as it is unneeded in pure client applications)
- Support specification of transportation mode (reliable (TCP) / unreliable (UDP)) when creating messages
- Fixed internal distribution of notication events
- Block messages that are received on the wrong port
- Fixed deregistration of local clients
- Fixed startup of applications that were started earlier than the routing manager
- Resetting all events of a service if it becomes unavailable (to ensure initial events are sent when it becomes available again)
- Ensure consistency of version information
- Fixed Service Discovery state machine

v1.3.0
- Fixed SD library loading on Windows
- Changed cmake directory name (CMake --> cmake)
- Corrected check for multicast address in Service Discovery
- Added default setting for Service Discovery timings
- Ensure only local services are reported by the Service Discovery
- Fixed a crash in case of a wrong unicast address definition
- Protected forwarding of availability information
- Improved handling of notification events
- Added initial support for selective broadcasts (CommonAPI)
- Avoid deadlock when offering services
- Correct handling of events
- Added initial support for managed interfaces (CommonAPI)

v2.0.0
- Buffer sizes were adapted to the transport protocols
- Added support for IPv6 multicast
- Improved handling of endpoints
- Report service state changes instead of service state to the application
- Set and process TTL field in Service Discovery to support detection of "lost" services
- Support automatic configuration of local communication
- Added compile time variable DIAGNOSIS_ADDRESS (which maps to the high byte of the SOME/IP client identifier)
- Configuration of events was moved from configuration file to API.
- Fixed routing of notication events.
- Increased robustness of configuration loader
- Changed default watchdog cycle from 1s to 5s
- Removed TTL arguments from public interface
- Allow Service Discovery to report non-SOME/IP services by setting the configuration variable "protocol"
- Fixed serialization of major version in Eventgroup entries
- Magic Cookies are no longer forwarded to the routing manager but handled in the receiving endpoint
- vsomeip daemon was added

v2.0.1
- Ensure Unicast flag is set in all Service Discovery messages
- Allow "local" as alias for unicast address in Magic Cookie configuration
- Correctly set layer 4 protocol in multicast options
- Increased robustness of deserialization of configuration options
- Fixed handling of unknown Service Discovery options

v2.0.2
- Fixed endpoint flushing
- Improved handling of Selective Broadcasts (CommonAPI)
- Trace connector was added
- Added reboot detection
- Reworked handling of TCP connections
- Support multiple multicast eventgroups per service
- Improved handling of multicasts
- Extended Service Discovery to send FindMessage messages for unknown services
- Support multiple SOME/IP messages in a single UDP datagram

v2.0.3
- Fixed shutdown and application re-registering

v2.0.4
- Service Discovery now used configured Client ID prefixes (=DIAGNOSIS_ADDRESS)
- Reworked reboot detection (now based on the destination address)
- Aligned default TTL setting (was 5 in vsomeip and 0xFFFFFF in vsomeip-sd, now its constently 0xFFFFFF)

v2.0.5
- Fixed reboot detection behavior

v2.0.6
- Diagnosis address can be configured at runtime

v2.1.0
- Avoid duplicate notifications if a selective event is in more than one eventgroup
- Ensure SD messages are sent from the SD port
- Ignore SD messages with wrong message identifier
- Accept unreliable subscription for eventgroups without configured multicast address
- Reject subscriptions that contain invalid IP address or port
- Reject subscriptions for TCP if the connection is not established
- Exclude vsomeip_ctrl from default installation
- Only accept SD messages from SD port
- Acknowledge multiple subscriptions sent within the same message with a single message
- Allow to specify an application specific DLT application
- Ensure correct ordering of availability notifications
- Automatically expire subscription based on the given TTL
- Do not include internal services in SD offer messages
- Consider all fields of SD subscribe messages
- Made the watchdog configurable
- Support destination address resolution on Windows (for reboot detection)
- Support auto-configuration (client identifiers, routing manager) on Windows

v2.1.1
- Ensure SD FindService-messages are sent after client re-registration
- Corrected configuration of MagicCookies
- Make client ports configurable
- Implemented FindService message optimization
- Extended configuration consistency checks

v2.1.2
- Ensure correct message order

v2.2.0
- Implemented Peer-to-Peer data exchange for notifications
- Fixed handling of minor version during service discovery
- Made initialization of application objects reentrant
- Routing manager proxies now reconnect to the routing manager if the connection got lost
- Auto-configuration supports multiple (different) configuration files
- The opening of TCP connections is no longer done without an explicit request
- Request No Respose messages are no longer answered in case of errors
- Notifications over IP were fixed
36 changes: 28 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (C) 2015 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
# Copyright (C) 2015-2016 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
Expand All @@ -7,8 +7,8 @@ cmake_minimum_required (VERSION 2.8.12)
project (vsomeip)

set (VSOMEIP_MAJOR_VERSION 2)
set (VSOMEIP_MINOR_VERSION 0)
set (VSOMEIP_PATCH_VERSION 1)
set (VSOMEIP_MINOR_VERSION 2)
set (VSOMEIP_PATCH_VERSION 4)
set (VSOMEIP_VERSION ${VSOMEIP_MAJOR_VERSION}.${VSOMEIP_MINOR_VERSION}.${VSOMEIP_PATCH_VERSION})
set (PACKAGE_VERSION ${VSOMEIP_VERSION}) # Used in documentatin/doxygen.in
set (CMAKE_VERBOSE_MAKEFILE off)
Expand Down Expand Up @@ -66,18 +66,32 @@ include_directories(
find_package(Threads REQUIRED)

# Boost
find_package( Boost 1.54 COMPONENTS system thread log REQUIRED )
find_package( Boost 1.55 COMPONENTS system thread log REQUIRED )
include_directories( ${Boost_INCLUDE_DIR} )

if(Boost_FOUND)
if(Boost_LIBRARY_DIR)
MESSAGE( STATUS "Boost_LIBRARY_DIR not empty using it: ${Boost_LIBRARY_DIR}" )
else()
if(BOOST_LIBRARYDIR)
MESSAGE( STATUS "Boost_LIBRARY_DIR empty but BOOST_LIBRARYDIR is set setting Boost_LIBRARY_DIR to: ${BOOST_LIBRARYDIR}" )
set(Boost_LIBRARY_DIR ${BOOST_LIBRARYDIR})
endif()
endif()
else()
MESSAGE( STATUS "Boost was not found!")
endif()

# DLT
find_package(PkgConfig)
pkg_check_modules(DLT "automotive-dlt >= 2.11")
IF(DLT_FOUND)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_DLT")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_DLT")
ENDIF(DLT_FOUND)

include_directories(
include
implementation/helper
${DLT_INCLUDE_DIRS}
)

Expand All @@ -90,15 +104,17 @@ file(GLOB vsomeip_SRC
"implementation/configuration/src/*.cpp"
"implementation/endpoints/src/*.cpp"
"implementation/logging/src/*.cpp"
"implementation/tracing/src/*.cpp"
"implementation/message/src/*.cpp"
"implementation/routing/src/*.cpp"
"implementation/runtime/src/*.cpp"
"implementation/utility/src/*.cpp"
)

if (MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_WIN32_WINNT=0x0501 -DWIN32 -DUSE_VSOMEIP_STATISTICS -DCOMMONAPI_INTERNAL_COMPILATION -DBOOST_LOG_DYN_LINK /EHsc")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_WIN32_WINNT=0x0501 -DWIN32 -DUSE_VSOMEIP_STATISTICS -DCOMMONAPI_INTERNAL_COMPILATION -DBOOST_LOG_DYN_LINK /EHsc")
SET(BOOST_WINDOWS_VERSION "0x600" CACHE STRING "Set the same Version as the Version with which Boost was built, otherwise there will be errors. (normaly 0x600 is for Windows 7 and 0x501 is for Windows XP)")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_WIN32_WINNT=${BOOST_WINDOWS_VERSION} -DWIN32 -DUSE_VSOMEIP_STATISTICS -DCOMMONAPI_INTERNAL_COMPILATION -DBOOST_LOG_DYN_LINK -DBOOST_ASIO_DISABLE_IOCP /EHsc")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_WIN32_WINNT=${BOOST_WINDOWS_VERSION} -DWIN32 -DUSE_VSOMEIP_STATISTICS -DCOMMONAPI_INTERNAL_COMPILATION -DBOOST_LOG_DYN_LINK -DBOOST_ASIO_DISABLE_IOCP /EHsc")
set(USE_RT "")
set(Boost_LIBRARIES "")
link_directories(${Boost_LIBRARY_DIR})
Expand Down Expand Up @@ -136,7 +152,7 @@ set(EXAMPLE_CONFIG_FILES
)

###################################################################################################
set (VSOMEIP_DIAGNOSIS_ADDRESS "0x11")
set (VSOMEIP_DIAGNOSIS_ADDRESS "0x00")
if (DIAGNOSIS_ADDRESS)
set (VSOMEIP_DIAGNOSIS_ADDRESS ${DIAGNOSIS_ADDRESS})
endif ()
Expand Down Expand Up @@ -301,6 +317,10 @@ add_custom_target( daemon )
add_subdirectory( daemon )
endif()

# build tools
add_custom_target( tools )
add_subdirectory( tools )

# build examples
add_custom_target( examples )
add_subdirectory( examples EXCLUDE_FROM_ALL )
Expand Down
25 changes: 25 additions & 0 deletions LICENSE_boost
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
This license applies to all files in directory implementation/helper/boost:

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
Loading

0 comments on commit 273814c

Please sign in to comment.