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

Add Traceroute Feature #211

Merged
merged 26 commits into from
Jul 4, 2024
Merged

Add Traceroute Feature #211

merged 26 commits into from
Jul 4, 2024

Conversation

fifieldt
Copy link
Contributor

As noted in #179, it would be great to be able to send traceroutes from the web application. Here's the very basic functionality.

Subscribe to Traceroute packets
Previously we were not triggering an event on receipt of a traceroute packet

Store Traceroute packages
The DeviceStore now stores received traceroute packets.

A button to send a traceroute
Adds a button to the Messages page for individual nodes which, when clicked, sends a traceroute to the selected node.
image

Functionality to view traceroutes
Adds a section in the Message page for individual nodes that shows the routes of received traceroute information.
image

fifieldt and others added 8 commits May 26, 2024 15:37
As noted in meshtastic#179, it would be great to be able to
send traceroutes from the web application.

This patch adds a button to the messages page that sends a
traceroute to the selected node.
As noted in meshtastic#179, it would be great to be able to
send traceroutes from the web application.

This patch adds a button to the messages page that sends a
traceroute to the selected node.
This patch adds basic traceroute display functionality on the
Messages page for an individual node.
@fifieldt
Copy link
Contributor Author

fifieldt commented May 26, 2024

TODO:

  • don't show traceroute functionality when looking at channels
  • proper styling for traceroute display (i.e. not just shoved under messages with no heading!)
  • testing for multi-hop traceroutes
  • MQTT vs non-MQTT traceroutes?

@cracky22
Copy link

cracky22 commented Jun 2, 2024

hey tom, thanks for adding! Unfortunately I can't help you much because my programming knowledge doesn't include typescript

@fifieldt
Copy link
Contributor Author

I've been using this for the past couple weeks and asked some people in the local community to test as well. Result is: it works reliably :)

I don't have the skill to design a great UI integration, so hoping someone might be able to help in that area.

@fifieldt fifieldt changed the title [WIP] Add Traceroute Feature Add Traceroute Feature Jun 15, 2024
@Hunter275
Copy link
Member

Hunter275 commented Jun 16, 2024

@fifieldt This is what I came up with, going to polish it a bit more:

(Both of my nodes are named Hunter, its not a bug lol)

image

If a traceroute hasn't been run the panel doesn't show. I also added a Toast message to say "Running Traceroute, please wait..." as it takes a few seconds to get a response (if any response).

I'm working on error handling right now so the user doesn't just think the traceroute button is broken as some radios don't respond if they're in your node list but not online.

Great work on this it works flawlessly.

@Hunter275 Hunter275 added enhancement New feature or request help wanted Extra attention is needed labels Jun 16, 2024
@Hunter275 Hunter275 linked an issue Jun 16, 2024 that may be closed by this pull request
@Hunter275
Copy link
Member

@fifieldt if I update this with my UI code could you tackle the timeout error Toast message?

@Hunter275 Hunter275 added the minor change This is a minor change label Jun 19, 2024
@cracky22
Copy link

Is the traceroute feature already available in version 2.3.13?

@fifieldt
Copy link
Contributor Author

Sorry for the delay @Hunter275 , yes I can have a go at that.

@cracky22 this hasn't merged yet, but you could download the code and test if you liked :)

@cracky22
Copy link

Sorry for the delay @Hunter275 , yes I can have a go at that.

@cracky22 this hasn't merged yet, but you could download the code and test if you liked :)

How can I test it on the heltec v2.1?

@Hunter275
Copy link
Member

@cracky22

https://meshtastic.org/docs/development/web/

@Hunter275 Hunter275 added the parity Feature is in other app (iOS, Android, etc) label Jun 28, 2024
@Hunter275 Hunter275 merged commit 4653656 into meshtastic:master Jul 4, 2024
3 checks passed
@Hunter275
Copy link
Member

Great work @fifieldt and @chrisdrackett

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed minor change This is a minor change parity Feature is in other app (iOS, Android, etc)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature Request: traceroute for webgui
4 participants