While AX.25 is typically used over radio links, there are circumstances where it is useful to transport it by other means, such as wired or wireless ethernet, or over established wide area networks.
As with many other protocols, it is fairly simple to encapsulate AX.25 in another network layer, and dencapsulate it when it reaches its destination. For long-distance links it is common to us AX.25 over Internet Protocol, either on the Internet itself or over private networks such as AMPRNet.
In the situation where it is desirable to connect AX.25 systems on a local network, AX.25 over ethernet offers a less complicated solution.
Both Linux and BPQ32 implement AX.25 over Ethernet as 'BPQEther', and it can be used to interoperate between those systems.
On my local network I have a couple of systems running Linux's AX.25 implementation, one of which is connected a radio using a NinoTNC.
On Linux, making use of BPQEther is a simple matter or loading the 'bpqether' module.
One this is loaded, it will create a number of 'bpq' network interfaces, corressponding to the number of ethernet devices on the system. The mappings can be found in /proc/net/bpqether
.
dev ether destination accept from
bpq0 eth0 ff:ff:ff:ff:ff:ff *
To make use of a device, it first needs to be assigned a callsign:
axparms --setcall bpq0 MYCALL-7
optionally, a specific ethernet destiation can be set using bpqparms -d
, otherwise packets will be sent to the network broadcast address, which is adaquate for simple setups with only a small number of systems.
On my Debian based systems I use a the normal network interfaces files to manage bpqether interfaces:
# /etc/network/interfaces.d/bpq0
auto bpq0
iface bpq0 inet manual
up bpqparms bpq0 -d broadcast
up axparms --setcall bpq0 MYCALL-15
up ip link set dev bpq0 up
down ip link set dev bpq0 down
For AX.25 applications to make use of the port, it should also be listed in the axports
file.
#name callsign speed paclen window description
bpq0 MYCALL-15 1000000000 255 7 BPQETHER for eth0