eclipse / mosaic

Eclipse MOSAIC is a Multi-Domain and Multi-Scale Simulation Framework for Automated and Connected Mobility Scenarios.
https://eclipse.dev/mosaic
Eclipse Public License 2.0
96 stars 55 forks source link

feat(sns): support multi-hop unicast for topological and geographical routing #428

Closed kschrab closed 2 weeks ago

kschrab commented 1 month ago

Description

SNS covers already various addressing/routing modes. With this MR, multihop unicast for both topoligic or geographic routing are added by re-using existing methods. Multi-hop Broadcast is still missing.

Addressing Routing Support
Unicast Topologic ✅Singlehop
Multihop (new)
Broadcast Topologic ✅Singlehop
❌Multihop
Unicast Geographic Singlehop (new)
Multihop (new)
Broadcast Geographic ✅Singlehop
✅Multihop

The SimpleAdHocTransmissionModel does not really count hops between single vehicles, but instead uses a configured multi-hop delay which is applied as soon as more than hop is required.

The SophisticatedAdHocTransmissionModel uses existing method forward (which was initially used by the Geographic routing) to send the message to a specific vehicle in the unicast mode via multiple hops.

The geographic unicast was implemented by simply reducing the list of potential receivers in the target geo area to the one destination vehicle.

Issue(s) related to this PR

Affected parts of the online documentation

Changes in the documentation required?

Kind of, we should add supported features (such as the table above) to our website documentation.

Definition of Done

Prerequisites

Required

Requested (can be enforced by maintainers)

Special notes to reviewer

kschrab commented 3 weeks ago

@hoelger please review

hoelger commented 3 weeks ago

Here are two/three other minor improvements, one is just style, the other two are performance optimizations, so that in case of no-delivery the loops don't count up to maxTtl but rather exit early.

I couldn't comment that in the PR because it's not directly part of the changes

improvements.patch

kschrab commented 2 weeks ago

Here are two/three other minor improvements, one is just style, the other two are performance optimizations, so that in case of no-delivery the loops don't count up to maxTtl but rather exit early.

I couldn't comment that in the PR because it's not directly part of the changes

improvements.patch

Good suggestions. I added them to my change.

hoelger commented 2 weeks ago

Apart from one minor comment: LGTM