Skip to content

Add scanning neighbors feature #296

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

kowalewskijan
Copy link

This PR adds a possibility to initiate scanning over Dbus and to get scanning results back.

Scope of changes:

  • Changes to sink_service to enable network scanning feature over dbus
  • Changes to sink_manager Python layer to provide scanning network API

@kowalewskijan kowalewskijan force-pushed the wmbc branch 2 times, most recently from cac2f9d to 1cf1b56 Compare February 6, 2025 13:32
@kowalewskijan
Copy link
Author

@GwendalRaoul @sgunes-wirepas Could you PTAL? It's a relatively small change

This commit adds neighbors scanning feature and enables
getting neighbors information over DBus from sink_service.
It's a missing feature for network discovery and analysis.

Signed-off-by: Jan Kowalewski <jkowalewski@cthings.co>
@GwendalRaoul
Copy link
Contributor

Hello @kowalewskijan,

Sorry for the delay to answer but we had some internal discussion first.

Even if your change is correct, it is not something we want to promote in our sinkService. In your case it may be working fine, but in general, forcing scan on a sink may result in performances degradation as the scan will prevent routing and flushing messages from the network.
Furthermore, the expectation on scan length is not valid for all profiles. It should be configurable.
And the list of neighbor generated by the stack, is based on stack own criteria that are not always the one expected by users (like best RSSI or best link quality).

So for now we will not merge this PR in our master. I hope you will understand it.

Best regards,
Gwendal

@kowalewskijan
Copy link
Author

Hello @GwendalRaoul,

What is then the best way to discover nodes attached to the sink in order to send data to them?

BR,
Jan

@kowalewskijan
Copy link
Author

@GwendalRaoul feel free to close this PR if it's won't merge. But I'm wondering what's the purpose of neighbors discovery functionality if it's that troublesome?

@GwendalRaoul
Copy link
Contributor

Hello,

What would be the use case associated to it?

Are you looking for nodes attached "directly" to sinks or belonging to a sink tree?
In a mesh network, devices may report through a sink but be very far (3,4,5... x radio range apart). So gateway or backend should maintain a list of devices with their last reporting sink.
This way if you want to send downlink traffic you know from which sink to send.

The api you are using returns a partial list of devices in same radio range. But it is not exhaustive list and some nodes mays even not be reporting to the sink directly.

Best regards,
Gwendal

@kowalewskijan
Copy link
Author

Hello @GwendalRaoul,

I have a FOTA service which sends packets over data plane to 3rd party chip connected through UART to nRF52 with dualmcu application. The service is run from the Gateway which has a sink connected, so I'd have to know if the node which supports this FOTA service is reachable. Of course the service could just time out if it's not reachable, but the first approach was to use this scanning network feature to see if the node is associated with the sink from which the service will be run.

BR,
Jan

@ogimenez-wirepas
Copy link

Hello @kowalewskijan, would you mind to open a ticket at https://developer.wirepas.com/support/tickets ? Our support team will be able to explore your use case and help you with the best solution

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