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