How is instance ID meant to be displayed?

Hi,

I’m currently building a wireshark dissector to analyze the local discovery protocol v4.

The protocol specifications mention an “instance ID”. https://docs.syncthing.net/specs/localdisco-v4.html

I got it from the packets, but I’m unsure how to display it in wireshark. It’s a 64bit int. Should I display it as decimal, or hex, or something else?

Also, I need to format the 32 byte ID. I’m guessing this corresponds to the alphanumeric AFDCHC-ISPLUF-… string? Can you point me to where in the code the conversion is made?

The instance_id field is set to a randomly generated ID at client startup. Other devices on the network can detect a change in instance ID between two announces and conclude that the announcing device has restarted

This is just an random number used to distinguish between different runs of the application, so old entries could be purged.

Ok, I’ll just display it as a decimal then. Thx!

Any pointers for the ID conversion?

Its in the protocol package, I think it uses base32 and a custom/broken version of luhn checksum.

2 Likes