Ok, time to get this hashed out. The current digipeating algorithm follows. I'm aware of two issues that need to be resolved:
1. Handling of WIDEn-N when N exceeds HOPLIMIT. Currently ignores 'n' and caps 'N' at HOPLIMIT. Some folks want to drop longer paths entirely, some just want the cap. Some want to cap based on total hops. 2. WIDE1-1 handling. Setting ALIAS to WIDE1 and HOPLIMIT to 0 should do it, but it'll still respond to WIDE1-anything. Here's the algorithm: For each digipeater address field in packet: -If address field is marked as used, skip this address -If this is the first unused address AND address is my callsign AND DIGI is ON: --Mark address as used --Add to dupe list --Queue for retransmission and exit -For each enabled entry in the alias list: --If this is not the first unused address AND preemption is disabled, skip this alias --If the address is an exact match (less SSID): ---Substitute our callsign if 'ID' is ON ---Mark address field as used ---Add to dupe list ---Queue for retransmission and exit --If alias hoplimit is non-zero and prefix matches: ---Skip if 'n' suffix is not a number ---Skip if SSID (N) is zero ---If SSID > hoplimit, set SSID to hoplimit ---Decrement SSID ---Insert our callsign if 'ID' is ON ---If SSID = 0, mark address as used ---If using preemption, mark all previous addresses as used ---Add to dupe list ---Queue for retransmission and exit Scott
