> Sounds like it should be: dup check on AT LEAST the information field and NEVER the routing path?
Two packets are considered a match if the source, destination, and information parts match. The digipeater fields are ignored for the comparison.
There is no point in comparing the control and protocol id fields because they are always the same for all APRS frames. Non-APRS frames would presumably be dropped before considering whether they were eligible for digipeating.
A brute force implementation would need to store and compare up to around 270 characters for each packet. This could be a resource drain on a little 8 bit microprocessor.
A common implementation trick is to store a CRC value instead to greatly reduce storage requirements and expense of comparisons. Not the original CRC of the frame, rather a new CRC computed from the source, destination, and information parts.
It is very unlikely that two different packets will have the same CRC value especially so close together in time. Occasionally there could be a false match and a packet gets dropped when it shouldn't. Good enough for our purposes.