Feature request: Decode regions for messages in Packet Analyzer #193

Closed
opened 2026-10-05 02:02:47 +02:00 by adam · 7 comments
Owner

Continuation of #256

TransportCode is shown for TransportFlood messages, but it is not in a readable format. E.g. 0X00009164 for 'nl-gr'.

https://github.com/meshcore-dev/MeshCore/blob/companion-v1.15.0/src/helpers/TransportKeyStore.cpp#L4

Are there already plans for this? Do we want to discover regions, like using the region discover functionality the app offers? And/or define a list in Remote Terminal? Or generate/brute force IDs for known regions?

Continuation of #256 TransportCode is shown for TransportFlood messages, but it is not in a readable format. E.g. 0X00009164 for 'nl-gr'. https://github.com/meshcore-dev/MeshCore/blob/companion-v1.15.0/src/helpers/TransportKeyStore.cpp#L4 Are there already plans for this? Do we want to discover regions, like using the region discover functionality the app offers? And/or define a list in Remote Terminal? Or generate/brute force IDs for known regions? <!-- github-sync-id:4476421756 -->
adam closed this issue 2026-10-05 02:02:47 +02:00
Author
Owner

I supposed that we could brute force a list, yeah, but frankly that feels a little messy. I'd be open to storing a list of regions that we can check for in the settings; not sure how widely used that would be — perhaps there's broad interest?

I supposed that we could brute force a list, yeah, but frankly that feels a little messy. I'd be open to storing a list of regions that we can check for in the settings; not sure how widely used that would be — perhaps there's broad interest? <!-- github-comment-id:4493093094 -->
Author
Owner

I agree brute force is a bit messy.

For UX I'd think compiling a list based on the regions defined for known channels would be a good start. This would require no interaction on the user's part, and allow you to see which channel messages share your region, and which are unscoped. This list could be edited and manually expanded/cleaned in the settings. This can also be used to autocomplete/select a region for the channels, instead of having to type the region manually.

As a bit of background, a part of The Netherlands Meshtastic community recently switched from SF 8 to 7, and there are plans to denyf * as soon as the 13th of June. So quite a few people are already playing around with regions. Quite a few analyzers already show region for messages, like https://analyser.meshwiki.nl/channels/public

But I'm not sure how much international interest there would be in showing region.

I agree brute force is a bit messy. For UX I'd think compiling a list based on the regions defined for known channels would be a good start. This would require no interaction on the user's part, and allow you to see which channel messages share your region, and which are unscoped. This list could be edited and manually expanded/cleaned in the settings. This can also be used to autocomplete/select a region for the channels, instead of having to type the region manually. As a bit of background, a part of The Netherlands Meshtastic community recently switched from SF 8 to 7, and there are plans to `denyf *` as soon as the 13th of June. So quite a few people are already playing around with regions. Quite a few analyzers already show region for messages, like https://analyser.meshwiki.nl/channels/public But I'm not sure how much international interest there would be in showing region. <!-- github-comment-id:4497988809 -->
Author
Owner

We do expose the region bytes already; with three upvotes on my comment, I'll give it a look, though. I'm running a little short on time in my life for something like this that needs some UI work, but I'll see if I can slot it in 🙂

We do expose the region bytes already; with three upvotes on my comment, I'll give it a look, though. I'm running a little short on time in my life for something like this that needs some UI work, but I'll see if I can slot it in 🙂 <!-- github-comment-id:4597924529 -->
Author
Owner

I have a draft implementation

Image

Specify your regions in Radio settings.

Tagging @zhdanow5a, @Rescla, @gjelsoe, @mightyjens, @Taylock2, @f3sty, @weckerle, @gaspode-t-wonderdog as potentially interested testers.

It's on current main. When you add regions, the app will backfill packets with the region identifiers. Let me know if you find any bugs; my local traffic is nearly entirely untagged (I have 2 tagged messages in 1.5mil packets lol).

I have a draft implementation <img width="275" height="77" alt="Image" src="https://github.com/user-attachments/assets/3de79d9a-4fd4-43a4-9662-c905b2480f7e" /> Specify your regions in Radio settings. Tagging @zhdanow5a, @Rescla, @gjelsoe, @mightyjens, @Taylock2, @f3sty, @weckerle, @gaspode-t-wonderdog as potentially interested testers. It's on current main. When you add regions, the app will backfill packets with the region identifiers. Let me know if you find any bugs; my local traffic is nearly entirely untagged (I have 2 tagged messages in 1.5mil packets lol). <!-- github-comment-id:4760940087 -->
Author
Owner

Initial testing looks good @jkingsman, thanks!

Packet analyzer:
Image

Channel view:
Image

Initial testing looks good @jkingsman, thanks! Packet analyzer: <img width="714" height="206" alt="Image" src="https://github.com/user-attachments/assets/05a23666-460a-4ded-9f1f-7e13b82278ef" /> Channel view: <img width="312" height="84" alt="Image" src="https://github.com/user-attachments/assets/c065d69e-d539-441c-a01a-758153f00012" /> <!-- github-comment-id:4761003902 -->
Author
Owner

Great work!

Some observations:

  1. If a message is received before this feature is running, it shows up correctly in the analyzer, but the small region indicator is not shown in the message list.
  2. If a message is received with a unknown scope, it is not updated when I add the scope (e.g. to the current channel). It remains unknown region in the analyzer, and the small region indicator is also not shown.
Great work! Some observations: 1. If a message is received before this feature is running, it shows up correctly in the analyzer, but the small region indicator is not shown in the message list. 2. If a message is received with a unknown scope, it is not updated when I add the scope (e.g. to the current channel). It remains `unknown region` in the analyzer, and the small region indicator is also not shown. <!-- github-comment-id:4797132291 -->
Author
Owner

yeah those both seem like reasonable tradeoffs. I don't want to do any kind of reprocessing in the packet feed; that's just a fire and forget feature 🙂 If you need historical region analysis, that's a good job for an offline pipeline 😜

Gonna close this as it looks to be smooth; feel free to reopen if there are any bugs.

yeah those both seem like reasonable tradeoffs. I don't want to do any kind of reprocessing in the packet feed; that's just a fire and forget feature 🙂 If you need historical region analysis, that's a good job for an offline pipeline 😜 Gonna close this as it looks to be smooth; feel free to reopen if there are any bugs. <!-- github-comment-id:4920021804 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/Remote-Terminal-for-MeshCore#193