Decide whether a packet heard on RF goes to APRS-IS, and how. **Scope:** - Don't gate: paths with `TCPIP`, `TCPXX`, `NOGATE` or `RFONLY`; third-party packets already gated; generic queries; packets that fail to parse. - Add `qAR,<igate call>` and strip what the IGate must not pass on. - Duplicate suppression with `DuplicateFilter`, so a packet heard through several digipeaters goes up once. - A reason for every packet not gated, for logs and metrics. **Done when:** - table tests cover each rule, from corpus lines and the aprs-is.net IGate documentation; - metrics count gated and refused packets by reason; - the API is listed in `PublicAPI.Unshipped.txt`.
Activity
feat(igate): RF-to-internet gating rules in AprsNet.IGate