Hamlabs / ArcticTracker-Teensy

APRS tracker based on Teensy 3
2 stars 3 forks source link

RF>IS igate does unnecessary duplicate filtering #1

Closed hessu closed 7 years ago

hessu commented 7 years ago

Hi,

The RF>IS igate in ArcticTracker seems to unnecessarily drop duplicate packets with a fairly simple algorithm (CRC16) which may drop some extra packets due to crc16 hash collisions.

https://github.com/ohanssen/ArcticTracker/blob/master/igate.c#L267

The RF>IS igate does not need to drop duplicate packets at all, since they will be filtered by the upstream APRS-IS server with a more complicated algorithm which does not suffer from hash collisions. The upstream server can also benefit from having the duplicate packets available, since the duplicates can be extracted from the server for analysis, and in the future it can also possibly due improved message routing if the dupes are there.

For details, please see:

https://github.com/hessu/aprsc/blob/master/doc/IGATE-HINTS.md#igates-dropping-duplicate-packets-unnecessarily

It turns out that a some other implementations that I've seen have had practically the same CRC16 based dupe filter.

Thank you!

ohanssen commented 7 years ago

Hi, thanks for the issue. I actually made this filtering for the digipeater and wanted to reduce the amount of unnecessary igated packets as well. I do a similar kind of filtering in the Polaric Server igate as well, so I'll consider to remove it. Btw I recommend using timestamped position reports which means that packets are unique.

hessu commented 7 years ago

Thanks! Good, timestamps are very helpful in sorting and removing delayed duplicates which arrive later than older packets.

ohanssen commented 7 years ago

Fixed