[aprssig] Question about 'H-bit' handling and WIDEn-N paths
Henk de Groot
henk.de.groot at hetnet.nl
Fri Jan 28 14:29:11 EST 2005
Hallo Jim
At 08:18 28-1-2005 -0800, James Washer wrote:
>Ok.. you bring up another interesting question. You say that by keeping a
>history of 30seconds worth of CRC's we can avoid sending dupes, but
>setting the H-bit OR decrementing WIDEn-N/TRACEn-N will change the CRC. So
>what are they doing? Calculating a special CRC on the payload or something?
In DIGI_NED I keep a 16 bit CRC of the payload (data part) and the full
source call. If both match with a received packet then there is a
duplicate. I took the source call into account because a 16 bit CRC can
only have 65536 values, other stations can produce a packet with the same
CRC which you don't want to block as "duplicate". Now I have 65536
different CRC's per station call + SSID.
DIGI_NED takes it one step further, if a packet has not been digipeated
before then it is never considered to be a duplicate, it came directly from
the source so the packet is send twice deliberately. Since is was not
digipeated before it is not possible that the digipeater had this exact
instance of a packet before, so it can not be a duplicate...
The biggest problem is to determine if a packet has been digipeated in a
generic way (taking digipeatin on SSID's into account). In DIGI_NED I did
not hardcode WIDE and TRACE as "inteligent digipeating calls" but just look
at the SSID and determine if the last character of the digipeater call part
is the same or greater. So it also works for calls like CA2-2 and such...
Kind regards,
Henk.
P.S. DIGI_NED is open source, you're welcome to reuse code or code ideas
from it. The source can be found at http://www.homepages.hetnet.nl/~pe1dnn.
More information about the aprssig
mailing list