Comments (14)
Artery itself does not provide any forwarding algorithms, however, it integrates Vanetza for this task. Vanetza supports all forwarding algorithms given by EN 302 636-4-1 including Greedy Forwarding and Contention Based Forwarding.
from artery.
Hi @riebl
Thanks for the help. I try to use Vanetza routing for multi-hop, but I can't make it work. Do you have an example on how to use any Vanetza forwarding algorithms with Artery?
Regards,
Daniel
from artery.
From the perspective of an Artery service there is not much to do: Any packet with transport type set to "GBC" (GeoBroadcast) will be subject to forwarding operations by artery.networking.Router
.
So far there is no Router module parameter to change the routing algorithm, however, you can easily override the setting in code at MIB setup by setting itsGnAreaForwardingAlgorithm
and itsGnNonAreaForwardingAlgorithm
. Feel free to make those configurable via module parameters :-)
from artery.
Hi @riebl
I set the settings at MIB setup to:
mib.itsGnAreaForwardingAlgorithm = vanetza::geonet::BroadcastForwarding::CBF;
mib.itsGnNonAreaForwardingAlgorithm = vanetza::geonet::UnicastForwarding::Greedy;
In my scenario, the source node are outside the destination area, so when I send a packet two hops are executed using vanetza::geonet::UnicastForwarding::Greedy
. In the third hop the node are inside the destination area, but he don't execute the CBF
for disseminate the packet inside.
I have been debugging the vanetza::geonet::router.cpp
and read the ETSI EN 302 636-4-1 V1.2.1 , but I don't be able to find the problem.
Can you help me?
Regards,
Daniel
from artery.
@danieladriano Can you share your scenario with me, possibly sending it confidentially via e-mail? Your selection of forwarding algorithms is actually Vanetza's default setup, so that is not changing anything.
from artery.
Hi @riebl
Of course! Can you send me a e-mail and then I send back to you with my scenario. My e-mail:
Thanks for helping me!
Regards,
Daniel
from artery.
Note to the public: Daniel and me have investigated this issue further and we currently believe that Artery is behaving correctly according to ETSI specification. A possible (not yet standardised) solution is work-in-progress.
from artery.
Hi, @danieladriano and @riebl
I am also very interested in this issue and if you need a hand, I would like to take part in the discussion and test.
from artery.
Hi, @riebl
I think I may face the same problem as @danieladriano .
Could u tell if there is any progress for this problem?
from artery.
@ruisonghan I am still working on this. In the meantime, you may work-around multi-hop routing issues by repeating transmissions (see the repetition
field in vanetza::btp::DataRequestB
's GeoNet parameters).
from artery.
@ruisonghan I am still working on this. In the meantime, you may work-around multi-hop routing issues by repeating transmissions (see the
repetition
field invanetza::btp::DataRequestB
's GeoNet parameters).
Hi, Riebl and Daniel
I think my problem is different from Daniel's and I am trying to get the reason. I defined my own scenario and DEN use cases called TranssecRiskLevel and TranssecRiskLevelReceiver. The basic function of them is sending an alert to other vehicles and makING other vehicles evacuate.
Currently, I found that when my own use cases were used with the DEN use case "ImpactReductionContainerExchange", multi-hop GBC worked normally. However, when "TrafficJamAhead" was used with my use cases, multi-hop didn't work.
<?xml version="1.0" encoding="UTF-8"?>
<usecases>
<usecase type="artery.application.den.TranssecRiskLevel">
<filters><name pattern="truck0.0" /></filters>
</usecase>
<usecase type="artery.application.den.TranssecRiskLevelReceiver">
<filters><name pattern="truck0.0" match="inverse"/></filters>
</usecase>
<usecase type="artery.application.den.TrafficJamAhead" />
<!-- <usecase type="artery.application.den.ImpactReductionContainerExchange" /> -->
</usecases>
I am a little confused with why the DEN use cased may affect the multi-hop communication. I will contact you when I find a clue.
from artery.
@ruisonghan Maybe too many messages are generated by your station, i.e. DCC may enqueue them. I have recently added a NoRateControlDccEntity
which you could try. You can enable this entity by adding **.vanetza.dcc.typename = "NoRateControlDccEntity"
to your omnetpp.ini.
from artery.
@ruisonghan Maybe too many messages are generated by your station, i.e. DCC may enqueue them. I have recently added a
NoRateControlDccEntity
which you could try. You can enable this entity by adding**.vanetza.dcc.typename = "NoRateControlDccEntity"
to your omnetpp.ini.
Hi, @riebl
Currently, I found 2 ways to temporarily solve my problems, but I still don't know the reasons.
-
By setting the
sampleDuration
ofTrafficJamAhead
to 10s (from 120s to 10s) insrc/artery/application/den/TrafficJamUseCase.ned
-
By setting the
request.gn.traffic_class.tc_id(0);
of TrafficJamAhead::createRequest() insrc/artery/application/den/TrafficJamUseCase.cc
. This setting was previouslyrequest.gn.traffic_class.tc_id(1);
For 2, I think my problem is related to the communication congestion, but when testing my use case with TrafficJamEndOfQueue
, multi-hop worked fine. And the communication frequency of TrafficJamEndOfQueue
is higher than TrafficJamAhead
. This is very weird since it seems the less frequent use case and message will affect my use case.
I am still working on it and hope to find an answer.
from artery.
Regarding 1), these limits are just set as required by C2C-CC's Triggering Conditions. Possibly these conditions simply do not trigger with a longer sample buffer in your scenario.
2) TC ID 0 (a.k.a. DCC DP0) is used for bursty packets ("emergency packets"). DP1 is used for normal DENMs.
from artery.
Related Issues (20)
- Artery build error HOT 6
- run into problems while trying `vagrant up` on my Ubuntu 22.04 machine HOT 6
- CAM and DENM messages HOT 2
- DEN use cases HOT 1
- connecting artery simulation scenario with the external v2x device HOT 3
- Traffic Lights management HOT 1
- Problem with adding new files to INET (<!> Error: Cannot load library) HOT 3
- adding RSU to simuLTE probleme cars veins HOT 5
- Difficulty Implementing External Service Message Transmission and Enabling Network Participants to Edit Messages in Artery HOT 6
- Integrating MQTT protocol with artery HOT 13
- Segementation fault (core dumps) in artery::FovSensor::refreshDisplay HOT 1
- ASSERT: Condition 'mController' does not hold in function 'getVehicleController' HOT 14
- Equip services to vehicles HOT 1
- Protobuff transmission using cPacket and request
- Problems running CAM Fixed and Dynamic with the same scenario HOT 5
- about a cmake error HOT 6
- UPER encoded DecentralizedEnvironmentalNotificationMessage(DENM) structure
- Regarding creating a new service to stationary nodes(rsu) HOT 3
- Creating messages HOT 1
- Ask for help! How do I use 'CollectivePerceptionMockService' in Artery? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from artery.