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

[Collision] Add collision detection and CCA support - Part 7 of RTEA #363

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

Vinggui
Copy link
Contributor

@Vinggui Vinggui commented Sep 15, 2022

Contribution description

This PR is part of the process of breaking PR #235 into small steps, a process nominated "Road to Energy Analysis" (RTEA). These small modifications will lead to the whole improvement started on March 2022. At the end of these steps, OT-NS will be capable of precisely estimating energy consumption, collision events (channel aware), and plot all the data in real-time as the simulation progress.

At the moment, OT-NS can not estimate energy, collisions, nor transmission energy. Also, even though OT is working well in simulation, many of its recovery properties are not correctly simulated as they would happen in real devices due to its incorrect timing events at the simulated radio part.

This PR adds functions to handle the radio-timed events (e.g., transmissions) by each simulated device.
It is still compatible to the current implementation of the OT.

Main modifications

  • New event type eventTypeChannelActivity to support CCA procedures;
  • New variables to handle collision detection and CCA requests;

This PR keeps all previous commits to reduce future rebase efforts. However, relative to the timeline of RTEA, it addresses only the following files:

  • /ot-ns/dispatcher/dispatcher.go
  • /ot-ns/dispatcher/event.go
  • /ot-ns/dispatcher/Node.go

Requirements

None (if intended to be used with current Openthread repository). But, this is a walk to the road of PR #7500 in Openthread repository that will allow all the new features in the simulation to work.

Testing procedure

Just install OTNS the same way as before, using the "OTNS=1" for the building parameter.

Roadmap

This is part 7 of the RTEA (Road to Energy Analysis) steps to PR #235 and PR #7500.

Part 1: PR #357;
Part 2: PR #8144;
Part 3: PR #359;
Part 4: PR #8152;
Part 5: PR #362;
Part 6: PR #8165;
Part 7: This PR;
Part 8: PR #8173;
Part 9: PR #365;
Part 10: PR #366;
Part 11: PR #367.

@codecov-commenter
Copy link

Codecov Report

Merging #363 (b2055e9) into main (c616148) will decrease coverage by 3.10%.
The diff coverage is 11.54%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #363      +/-   ##
==========================================
- Coverage   49.97%   46.86%   -3.11%     
==========================================
  Files          38       40       +2     
  Lines        4608     4950     +342     
==========================================
+ Hits         2303     2320      +17     
- Misses       2123     2441     +318     
- Partials      182      189       +7     
Impacted Files Coverage Δ
cli/CmdRunner.go 22.62% <0.00%> (-0.51%) ⬇️
cli/ast.go 66.66% <ø> (ø)
types/types.go 65.38% <ø> (ø)
web/site/bindata.go 99.00% <ø> (-0.01%) ⬇️
visualize/grpc/pb/visualize_grpc.pb.go 18.77% <3.63%> (-0.66%) ⬇️
dispatcher/dispatcher.go 48.40% <3.84%> (-8.70%) ⬇️
energy/core.go 7.31% <7.31%> (ø)
dispatcher/Node.go 22.22% <24.00%> (-8.06%) ⬇️
energy/node.go 40.00% <40.00%> (ø)
simulation/simulation.go 57.94% <50.00%> (-0.31%) ⬇️
... and 5 more

@EskoDijk
Copy link

Just noting the intended change is in the 3rd commit (building upon other PRs), and mainly the dispatcher with some supporting fields/methods in Node.go. For the proposed design, the same comment I gave on PR #362 applies.

@Vinggui
Copy link
Contributor Author

Vinggui commented Sep 15, 2022

Hi @bukepo ,
I saw the you last edited the GetRssi(uint16_t aChannel) function.
With this PR that provides a CCA communication with OTNS, do you think we can link this function with the simulator to better provide an RSSI value?

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.

3 participants