Skip to content

Conversation

Vignesh-Murugappan
Copy link
Contributor

When the threshold is set to 1 in the configuration, the initial event sent for client 2 is always multicast rather than unicast.

the initial event sent for client 2 is always multicast
rather than unicast.

Signed-off-by: Vignesh MURUGAPPAN <vignesh.murugappan@valeo.com>
@duartenfonseca
Copy link
Collaborator

Hi, this fails when building:

Screenshot from 2024-09-10 11-53-06

@Vignesh-Murugappan
Copy link
Contributor Author

Hi, this fails when building:

Screenshot from 2024-09-10 11-53-06

Resolved. Thanks for your comment.

@duartenfonseca
Copy link
Collaborator

@Vignesh-Murugappan if you read here: https://github.com/COVESA/vsomeip/blob/637fb6ccce969f89621660dd481badb29a90d661/documentation/vsomeipUserGuide#L662C1-L669C53
it says:

Specifies when to use multicast and when to use unicast to send a notification event.
Must be set to a non-negative number. If it is set to zero, all events of the eventgroup
will be sent by unicast. Otherwise, the events will be sent by unicast as long as the
number of subscribers is lower than the threshold and by multicast if the number
of subscribers is greater or equal. This means, a threshold of 1 will lead to all events
being sent by multicast
. The default value is 0.
which seems to go against what you describe as your fix

@Vignesh-Murugappan
Copy link
Contributor Author

Vignesh-Murugappan commented Sep 11, 2024

@Vignesh-Murugappan if you read here: https://github.com/COVESA/vsomeip/blob/637fb6ccce969f89621660dd481badb29a90d661/documentation/vsomeipUserGuide#L662C1-L669C53 it says:

Specifies when to use multicast and when to use unicast to send a notification event.
Must be set to a non-negative number. If it is set to zero, all events of the eventgroup
will be sent by unicast. Otherwise, the events will be sent by unicast as long as the
number of subscribers is lower than the threshold and by multicast if the number
of subscribers is greater or equal. This means, a threshold of 1 will lead to all events
being sent by multicast
. The default value is 0.
which seems to go against what you describe as your fix

**Yes, you're correct. When the threshold is set to 1, the expectation is that all events should be multicast.

However, no initial event is sent. According to PRS_SOMEIPSD_00487, an initial event should be sent to subscribers immediately after subscription acknowledgment for all new subscriptions. If a subscription is already active and is subsequently updated by a Subscribe Eventgroup entry, no initial events should be dispatched.

In my case, when the threshold is set to 1, the initial event is received by the first subscriber but not by the second.

In summary, when the threshold is 'N', initial events are sent to all 'N' subscribers, but not to the 'N+1'-th subscriber and so on.

With the proposed change, the behavior aligns with expectations, and there are no issues observed with multicast or unicast behavior regardless of whether the threshold is set or not.**

@duartenfonseca
Copy link
Collaborator

the initial event, after the threshold is surpassed is sent via multicast. and that is backed by this requirement:
image-2025-01-22-15-11-27-144

which says that after only multicast communications is allowed with n>threshold

@vidz12
Copy link

vidz12 commented Feb 5, 2025

@duartenfonseca Thanks for your comment.

Understand that this threshold parameter does not influence the working of initial event functionality i.e. initial event should be always over unicast.
covesa_clarification
Can you check this?

@vidz12
Copy link

vidz12 commented Feb 26, 2025

@duartenfonseca Could you please let me know your views on the above specification attached?

@duartenfonseca duartenfonseca merged commit a79fae1 into COVESA:master May 12, 2025
duartenfonseca pushed a commit that referenced this pull request Jun 26, 2025
Ensures buffer lifetime into async handler
Revert Execution context of subscription handlers
Ensure "shutdown_and_close" is called on "stop"
Notify stop func when receives EOF during stop process
Fix availability triggers on client error
is_sending_ set to false on restart
fix host assignment with non-local routing
fix big_payload_test_local_tcp_queue_limited
is_sending_ set to false when socket is not open
reset multicast_id_
tse - fix linger options
Allow daemon to send ADD_CLIENT to connected clients
Fix Bad File Descriptor on UDP server Endpoints
Support multiple IPsec activation files per connection
Execution context of subscription handlers
Global request debounce time
Stop find/offer debounce timers
Fix NSM logs with empty Container Id strings
Add config for wait_route_netlink_notification
Optimize data lookups
Remove the get_mutex_ from runtime_impl
lock registration_state_mutex_ before sending
Fix REMOTE_ERROR on response
protect request_debounce_timer_running_
Convert pending_sd_offers_ from vector to set
Dont call shutdown_and_close if socket is connecting
When the threshold is set to 1 in the configuration, the initial event sent for client 2 is always multicast rather than unicast. (#763)
Small code modernizations (#835)
Delay on event_tests Service application
Removes remote_subscribers_ member variable
Log the steps during suspend/resume
Improve sd accept offer log
Do not log when doing nothing
start endpoint only on creation
reset request_debounce_timer_running_
Reset routing root on net_state_change off
Added additional offer check
Remove interface index in RTM_DELLINK
Perform endpoint port assignment on vnet on
Unspecify catch exception
Remove pending subscriptions after on subscription call
Update documentation and logs
Enable global dispatch settings
Enable configuration of client-specific debouncing
Fix incorrect microsecond extraction in logging timestamps (#844)
Vsomeip dissector v0.3
Reduce npdu_tests timeout
Network-tests: debounce tests
Disable dlt-daemon for network-tests
Updates cmake to build hello_world example
Wrap options are linker flags (#780)
test/common/CMakeLists.txt: add missing link with dlt (#602)
force on_availability
IO threads exit mitigation
@duartenfonseca duartenfonseca mentioned this pull request Jun 26, 2025
duartenfonseca pushed a commit that referenced this pull request Jun 26, 2025
Changes:

Ensures buffer lifetime into async handler
Revert Execution context of subscription handlers
Ensure "shutdown_and_close" is called on "stop"
Notify stop func when receives EOF during stop process
Fix availability triggers on client error
is_sending_ set to false on restart
fix host assignment with non-local routing
fix big_payload_test_local_tcp_queue_limited
is_sending_ set to false when socket is not open
reset multicast_id_
tse - fix linger options
Allow daemon to send ADD_CLIENT to connected clients
Fix Bad File Descriptor on UDP server Endpoints
Support multiple IPsec activation files per connection
Execution context of subscription handlers
Global request debounce time
Stop find/offer debounce timers
Fix NSM logs with empty Container Id strings
Add config for wait_route_netlink_notification
Optimize data lookups
Remove the get_mutex_ from runtime_impl
lock registration_state_mutex_ before sending
Fix REMOTE_ERROR on response
protect request_debounce_timer_running_
Convert pending_sd_offers_ from vector to set
Dont call shutdown_and_close if socket is connecting
When the threshold is set to 1 in the configuration, the initial event sent for client 2 is always multicast rather than unicast. (#763)
Small code modernizations (#835)
Delay on event_tests Service application
Removes remote_subscribers_ member variable
Log the steps during suspend/resume
Improve sd accept offer log
Do not log when doing nothing
start endpoint only on creation
reset request_debounce_timer_running_
Reset routing root on net_state_change off
Added additional offer check
Remove interface index in RTM_DELLINK
Perform endpoint port assignment on vnet on
Unspecify catch exception
Remove pending subscriptions after on subscription call
Update documentation and logs
Enable global dispatch settings
Enable configuration of client-specific debouncing
Fix incorrect microsecond extraction in logging timestamps (#844)
Vsomeip dissector v0.3
Reduce npdu_tests timeout
Network-tests: debounce tests
Disable dlt-daemon for network-tests
Updates cmake to build hello_world example
Wrap options are linker flags (#780)
test/common/CMakeLists.txt: add missing link with dlt (#602)
force on_availability
IO threads exit mitigation
duartenfonseca pushed a commit that referenced this pull request Jun 26, 2025
Changes:

Ensures buffer lifetime into async handler
Revert Execution context of subscription handlers
Ensure "shutdown_and_close" is called on "stop"
Notify stop func when receives EOF during stop process
Fix availability triggers on client error
is_sending_ set to false on restart
fix host assignment with non-local routing
fix big_payload_test_local_tcp_queue_limited
is_sending_ set to false when socket is not open
reset multicast_id_
tse - fix linger options
Allow daemon to send ADD_CLIENT to connected clients
Fix Bad File Descriptor on UDP server Endpoints
Support multiple IPsec activation files per connection
Execution context of subscription handlers
Global request debounce time
Stop find/offer debounce timers
Fix NSM logs with empty Container Id strings
Add config for wait_route_netlink_notification
Optimize data lookups
Remove the get_mutex_ from runtime_impl
lock registration_state_mutex_ before sending
Fix REMOTE_ERROR on response
protect request_debounce_timer_running_
Convert pending_sd_offers_ from vector to set
Dont call shutdown_and_close if socket is connecting
When the threshold is set to 1 in the configuration, the initial event sent for client 2 is always multicast rather than unicast. (#763)
Small code modernizations (#835)
Delay on event_tests Service application
Removes remote_subscribers_ member variable
Log the steps during suspend/resume
Improve sd accept offer log
Do not log when doing nothing
start endpoint only on creation
reset request_debounce_timer_running_
Reset routing root on net_state_change off
Added additional offer check
Remove interface index in RTM_DELLINK
Perform endpoint port assignment on vnet on
Unspecify catch exception
Remove pending subscriptions after on subscription call
Update documentation and logs
Enable global dispatch settings
Enable configuration of client-specific debouncing
Fix incorrect microsecond extraction in logging timestamps (#844)
Vsomeip dissector v0.3
Reduce npdu_tests timeout
Network-tests: debounce tests
Disable dlt-daemon for network-tests
Updates cmake to build hello_world example
Wrap options are linker flags (#780)
test/common/CMakeLists.txt: add missing link with dlt (#602)
force on_availability
IO threads exit mitigation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants