ingress

package
v0.13.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 30, 2026 License: GPL-2.0 Imports: 0 Imported by: 0

Documentation

Overview

Package ingress defines an in-process typed identifier for the origin of an RX frame flowing through the modem-RX fanout.

Source provenance is threaded alongside *pb.ReceivedFrame so downstream subscribers (KISS broadcast, digipeater, APRS submit) can suppress feedback loops when a frame originated from a KISS-TNC interface rather than the local modem. The identity is deliberately kept in-process — it is not encoded on the wire protocol.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Kind

type Kind uint8

Kind enumerates the supported RX sources. New sources (SDR, AGW, Bluetooth TNC, etc.) get their own constant without churning the fanout signature.

const (
	// KindModem is a frame demodulated by the local modem bridge.
	KindModem Kind = iota + 1
	// KindKissTnc is a frame ingested from a KISS interface configured
	// in TNC mode (i.e. an off-air RX source, not a TX peer).
	KindKissTnc
)

type Source

type Source struct {
	Kind Kind
	ID   uint32
}

Source identifies where an RX frame entered graywolf. ID is the KissInterface DB row ID for KindKissTnc; unused (zero) for KindModem.

func KissTnc

func KissTnc(ifaceID uint32) Source

KissTnc returns a Source tagging a frame as coming from the KISS-TNC interface with the given DB row ID.

func Modem

func Modem() Source

Modem returns a Source tagging a frame as coming from the local modem.

func (Source) IsKissTnc

func (s Source) IsKissTnc(id uint32) bool

IsKissTnc reports whether this Source is the KISS-TNC interface with the given ID. Used by the broadcast subscriber to suppress echo back to the originating interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL