Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cherry-pick netlink retries commit from upstream #13

Closed
wants to merge 34 commits into from

Conversation

milancpp
Copy link

fynnwilliam and others added 30 commits June 25, 2022 23:26
Compatibility with CMake < 2.8.12 will be removed from a future version
of CMake.
Since the variables are marked as const - we are not going to change
them, we may also take them by ref. Which means we just want to see the
variables.

This improves the performance and also helps to generate minimal code.
Use Reference to Prevent Copying
Co-authored-by: Diogo Pedrosa <[email protected]>
tm_mon is counted from 0, so needs to be incremented by 1

Signed-off-by: Florian Frank <[email protected]>
Co-authored-by: Florian Frank <[email protected]>
unintialized -> uninitialized
Include inttypes to use correct format specifier when running on
32 or 64 bit platforms.

Signed-off-by: Florian Frank <[email protected]>
* remove redundant ostream manipulators

The following manipulators are sticky, and do not have to be repeated
for every item:

- setiosflags, resetiosflags, setbase, setfill, setprecision
- [no]boolalpha, [no]showbase, [no]showpoint, [no]showpos, [no]skipws,
  [no]unitbuf, [no]uppercase
- dec, hex, oct
- fixed, scientific
- internal, left, right

The only not sticky or persistent manipulator is setw, because all
output operators provided by the C++ library reset the width by
calling width(0) when beeing done.

Therefore the following test code works without any problem:

    ostringstream sfill;
    ostringstream sopti;

    sfill << hex << setfill('0') << setw(2) << 12
	  << hex << setfill('0') << setw(2) << 34
	  << hex << setfill('0') << setw(2) << 56;

    sopti << hex << setfill('0')
	  << setw(2) << 12
	  << setw(2) << 34
	  << setw(2) << 56;

    assert(sfill.str() == sopti.str());

The code savings using gcc 7.5.0 are as follows:

unoptimized     416432     9344     416  426192   680d0 libvsomeip3-cfg.so.3.3.0
                 49431     2760       8   52199    cbe7 libvsomeip3-e2e.so.3.3.0
                355217    11984     696  367897   59d19 libvsomeip3-sd.so.3.3.0
               2359943    65976    4336 2430255  25152f libvsomeip3.so.3.3.0

                 19967     1392     648   22007    55f7 examples/notify-sample
                 18912     1792     648   21352    5368 examples/subscribe-sample
                 20113     1456     648   22217    56c9 examples/request-sample
                 15131     1360     648   17139    42f3 examples/response-sample

optimized       416260     9344     416  426020   68024 libvsomeip3-cfg.so.3.3.0
                 49431     2760       8   52199    cbe7 libvsomeip3-e2e.so.3.3.0
                353693    11984     696  366373   59725 libvsomeip3-sd.so.3.3.0
               2343495    65976    4336 2413807  24d4ef libvsomeip3.so.3.3.0

                 19967     1392     648   22007    55f7 examples/notify-sample
                 18255     1792     648   20695    50d7 examples/subscribe-sample
                 19143     1456     648   21247    52ff examples/request-sample
                 15003     1360     648   17011    4273 examples/response-sample

Signed-off-by: Roman Fietze <[email protected]>

* fix missing whitespace after output operator

Signed-off-by: Roman Fietze <[email protected]>

---------

Signed-off-by: Roman Fietze <[email protected]>
Notes:
v3.3.5.1
- Fix typo in application_impl.cpp
- Update load_balancing_option_impl.cpp
- Fix format specifier in memory_log_timer_cbk
- Isolate boost
- 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
Notes:
- 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
Notes:
- 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
Notes:
- Check buffer size when serializing/deserializing event registrations
- Remove leftovers from shm usage
- Avoid using uninitialized variable
- Displays lib version when starting any app
…pl.hpp) (COVESA#515)

* modified ipv3_option_impl to ipv4_option_impl

* removed class ipv3_option_impl  and class ipv6_option_impl, because it is not necessary
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
Co-authored-by: Julius Gesang <[email protected]>
* Allow service_discovery to continue without random_device

Allow service_discovery to continue even if the random_device isn't yet
available.  This is unlikely to occur on linux systems, but not
impossible.  It is more likely on other systems such as QNX.  In the
event that the random device isn't available, an error message is
produced and the middle of the min/max for the delay is used.

Without this change, if the random device is missing, the following
error is thrown:

   terminate called after throwing an instance of 'std::__1::system_error'
   what():  random_device failed to open /dev/urandom: No such file or directory
   Abort (core dumped)

* Remove the check_routing_credentials_ member when security is disabled.  This removes the private error warning turned error by -Werror:

error: private field 'check_routing_credentials_' is not used [-Werror,-Wunused-private-field] error

* Update service_discovery_impl.cpp

---------

Co-authored-by: Diogo Pedrosa <[email protected]>
Don't ignore service requests after Offer, if service is set to ANY_SERVICE
or instance is set to ANY_INSTANCE.
* Documentation update

Update of Readme

* Update helloworld-local.json
DiogoPedrozza and others added 4 commits November 29, 2023 14:24
Notes:
- 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
@milancpp milancpp closed this Apr 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.