It also includes aprsmon, a one-way gateway to APRS on TCP/IP.
Aprsdigi is a specialized Amateur Packet Radio (AX.25) UI-frame digipeater for the Automatic Position Reporting Systems, APRS(tm). It uses the Linux kernel AX.25 network stack as well as the SOCK_PACKET facility to listen for packets on one or more radio interfaces (ports) and repeat those packets -- with several possible modifications -- on the same or other interfaces. Aprsdigi can also use the Internet to tunnel connections among other APRS digipeaters and nodes using IPv4 or IPv6 UDP unicast or multicast.
Aprsdigi implements conventional packet radio AX.25 digipeating, in which a packet is digipeated if the next hop (non-repeated) digipeater ("via") callsign matches the AX.25 port's callsign and sub-station ID (SSID) or an alias callsign and SSID.
There are a number of extensions to conventional digipeating that have been proposed for use in the APRS community. Some of these features have been adopted by Terminal Node Controller (TNC) manufacturers, notably Paccomm and Kantronics. Aprsdigi implements most if not all of the commercialy adopted and proposed features. See the APRS 1.0 Protocol Specification at www.tapr.org for protocol documentation. Aprsdigi attempts to minimally comply with the protocol specification as well as support experimental APRS features. Specific features implemented include:
- * Single-interface conventional UI-frame digipeating.
- * Cross-interface digipeating (also known as bridging, routing or gatewaying) and one-to-many fanout.
- * Substitution of a digipeated alias with the interface's callsign (typically used to substitute RELAY, WIDE or TRACE aliases).
- * WIDEn-n flooding algorithim.
- * TRACEn-n route recording.
- * Mic-Encoder(tm) support, including SSID-based digipeating, decompression of packets into the conventional APRS MIM format. (The Mic-Encoder compression is also used by other products such as the Kenwood TH-D7A and D700, and TAPR PIC-Encoder).
- * TheNet X1J4 node beacon text translation (removal of the lqTheNet X1J4 (alias)rq prefix from the btext).
- -v --verbose
- Produce verbose debugging output.
- -T --testing
- Test mode: listen to my packets too. This mode is useful for off-air experimentation and configuration testing. Do not use it on-air.
- -D --kill_dupes
- Suppress Duplicate packets. Remembers duplicate packets for the number of seconds given by the -k option and will not repeat them more than once. This reduces conjestion caused when several digipeaters that share a common flooding alias (e.g. WIDE) have overlapping footprints, causing geometric duplication of packets addressed via lqWIDE,WIDErq for example.
- -L --kill_loops
- Suppress Looping packets. Similar in function to duplicate packet suppression, but looks back through the list of already digipeated callsigns in the packet's digipeat list and kills any packets that list a callsign belonging to this aprsdigi. Note that only real callsigns are compared. Generic flooding aliases are not. Therefore, loop detection is only useful when callsign substitution is used.
- -V --version
- Print program version and exit.
- -n|s|e|w --north|south|east|west
- Set North|South|East|West SSID directional path.
- -d --digipath
- Set SSID omnidirectional next-hops when operating in a non flooding network (e.g. when WIDEn-n is not an option).
- -f --flood
- Set flooding alias. Use lq-f WIDErq to enable WIDEn-n flooding. Use -f multiple times to define several flooding aliases.
- -F --trace
- Set flooding trace callsign. Use lq-F TRACErq to enable TRACE and TRACEn-n flooding. Use -F multiple times to define several trace aliases.
- -k --keep secs
- Remember old packets for this long for duplicate packet detection. Default is 28 seconds.
- -l --logfile file
- Log digipeated packets to this file.
Per-Interface Options.
Put these options before each -p --interface to set new values as needed. The values you set are remembered for subsequent -p's so options you want to set for all interfaces need only be specified once, before the first -p. But you have to remember to unset an option if you don't want it to apply to subsequent interfaces.
- -C (-c) --[no]subst_mycall
- Do (not) perform callsign substitution. When enabled, aliases are replaced with the interface's callsign when repeated.
- -M (-m) --[no]mice_xlate
- Do (not) perform Mic-E to MIM translation. When enabled, compressed Mic-E reports are expanded into one MIM-style position report packet and optionally a second telemetry packet if telemetry was supplied in the Mic-E packet.
- -X (-x) --[no]x1j4_xlate
- Do (not) perform X1J4 translation. When enabled, the leading lqTheNet X1J4 (alias)rq text is removed when digipeated. This allows non-compliant APRS implementations to detect an APRS position report in an X1J4 beacon.
- -i --idinterval secs
- Seconds between ID transmissions. Set to 0 to disable IDs on this interface. Default is 570 (9 minutes 30 seconds). IDs are only sent if the interface transmitted anything since the last ID. ID packets are addressed to the lqIDrq callsign, have no digipeat path, and list the callsign and aliases for the interface the ID is being transmitted on.
- -t --tag text
- Text to append to received packets. Use -t - to reset to empty. Use this, for example, when gatewaying Mic-E packets from a voice repeater to the APRS net frequency to indicate where the report originated.
- -3 --3rdparty
- Enable 3rd party tunneling. Packets tunneled to a 3rd party interface are sent with the unused digipeaters removed from the digipeater list. Packets tunneled from a 3rd party interface have the Source Path Header prepended to the packet payload prefixed by the "}" character.
- -0 --no3rdparty
- Enable transparent tunneling. No special tricks are done when sending to or receiving from a tunneled interface. If the interface does not natively support AX.25 addresses (from-call, to-call, and digipeater list), then the address header is prepended to the payload in "cooked" format. Likewise, a cooked prepended header is stripped from a cooked interface and put back in the AX.25 address when going from a non-AX.25 to AX.25 interface.
- -o r --norx
- Disable receiving on the following interface(s).
- -o R --rx
- Enable receiving on the following interface(s).
- -o t --notx
- Disable transmitting on the following interface(s).
- -o T --tx
- Enable transmitting on the following interface(s).
- -o s --notxsame
- Disable retransmitting a received packet on the same interface.
- -o S --txsame
- Enable retransmitting a received packet on the same interface.
- -o d --duplicate intf
- Duplicate received packets without modification to the given interface (port).
- -p --interface ax25:port:alias1,alias2,...
- AX25 interface name (port) and optional list of aliases. The primary callsign is obtained from the interface's configuration. (See ifconfig(8)).
- -p --interface udp:host/port/ttl:alias1,alias2,...
- IP host name or address and list of aliases. IP addresses may be IPv4 unicast or multicast or IPv6 unicast. The primary callsign is obtained from the first alias.
- -p --interface unix:filename:alias1,alias2,...
- Unix file and list of aliases. Useful for debugging by setting up a simulated APRS network on one machine. You may want to make your FIFOs explicitly transmit- or receive-only to avoid confusion. The primary callsign is obtained from the first alias.
- -B|b --[no]bud
- addr Is similar to a TNC-2's BUDLIST. Use -B --bud to accept or -b --nobud to ignore packets from a sender or group of senders. Budlists are attached to each interface and can be reset with --bud -
You can set up a global budlist once, or per-interface budlists. The format of addr varies based on the interface type: - --bud ax25:callsign-ssid
- matches only a given digipeater callsign and SSID. For example, -B ax25:n0clu-14.
- --bud ax25:callsign
- matches all SSIDs for the given callsign. For example -B ax25:n0clu.
- --bud ip:hostname
- matches one Internet host name (IPv6 or IPv4). For example -B ip:n0clu.ampr.net
- --bud ip:address/maskbits
- matches all IP addresses that have the given prefix. For example --bud ip:44.0.0.0/8 matches the entire class-A network. --bud ip:192.168.0.0/16 matches the entire class-B network. --bud ip:fe80::201:3ff:fe9a:38c6 matches a single IPv6 host. --bud ip:2002:905::/32 matches the 32-bit IPv6 prefix.
aprsdigi responds to the following signals:
- SIGUSR1
- Print cumulative statistics. For each port, the following counters are displayed: packets received and how many of those where ignored, duplicates, loops, mic-E formatted; packets transmitted and how many of those where conventional digipeats, flooding digipeats (WIDEn-n), SSID-based digipeats, and IDs. If a log file was specified with the -l --logfile option, then the statistics are written to that file. Otherwise they are written to stderr.
- SIGUSR2
- Prints the statistics and then resets all counters to zero.
All other normal termination signals cause final statistics to print before aprsdigi exits.
Similar packages:
0 comments:
Post a Comment