XRPi Home

Documentation Index
Alphabetic Index

XRPi Documentation - Protocols

Modulo-128

Name

MODULO128 -- AX25 Modulo-128.

Description

Modulo-128 is an extension to AX25, with sequence numbers from 0 to 127 instead of the usual 0 to 7. This allows a much bigger MAXFRAME (up to 63) to be used, and is primarily of use on good links.

On conventional (Modulo-8) AX25 links, much of the inter-node traffic consists of short frames containing level 4 control information. These frames are interspersed with data-bearing frames, which themselves may be only partially full. Thus a router may transmit 7 frames in one go, but the transmission may only be a few hundred bytes in total.

This is inefficient, due to the delays associated with channel access, TXDELAY, TXTAIL, RESPTIME etc. On fast, error-free links the data arrives in short bursts, separated by long gaps of inactivity.

With Modulo-128, many more frames can be packed into a single transmission, so the channel overheads become less significant.

Because the largest allowed MAXFRAME value for Modulo-128 is 63, there can never be any sequence number ambiguity, and this allows frame "re- sequencing". With normal AX25, if the first frame of a multi-frame set is lost, the whole set of frames must be re-transmitted.

If Modulo-128 is used however, the "good" frames are stored by the recipient, and only the lost frame is re-sent. Together with the stored frames, this completes the set, and the whole set can be acked. This is a much more efficient strategy.

XRouter is capable of both Modulo-128, and frame resequencing. Modulo-128 frames are displayed on the trace screen as "EAX25" (Extended AX25) instead of "AX25", and are initiated by a new frame type "SABME" (Set Asynchronous Balanced Mode Extended). You will notice the sequence numbers being displayed as "<I R25 S32>"

The method of activation isn't fully decided as yet. If a caller requests Modulo-128 (by sending an SABME frame), XRouter will respond with <UA> and go into Modulo-128 mode.

The strategy for outgoing links is more complex. If the port MAXFRAME is greater than 7, *ALL* level 2 downlinks on that port will be tried using Modulo-128 (i.e. XRouter will send <SABME> instead of <SABM>. This is not on user ports, since hardly any users are EAX25 compatible.

If the called system is Modulo-128 capable, the correct response to <SABME> is <UA>, otherwise the correct response according to the AX25 protocol is either <DM> or <FRMR>, which will cause XRouter to fall back to normal Modulo-8 AX25.

Most systems do answer correctly, but there may however be some systems which do not properly implement AX25, for example by silently discarding <SABME> frames, and it will not be possible to link to these systems if MAXFRAME is greater than 7. This may be addressed in a future version.

It is more likely that Modulo-128 would be used on inter-node links with other XRouters, Linux and PE1CHL nodes, so to activate it, simply define a MAXFRAME > 7 for those routes which require it. If the port is dedicated to one link, you can set the port MAXFRAME > 7 instead.

See also

ROUTES(1) -- NetRom Route commands.
XROUTER.CFG(8) -- Main Configuration File.