AX.25 Amateur Packet-Radio
Link-Layer Protocol
Version 2.0, October 1984
2 AX.25 Link-Layer Protocol Specification
2.1 Scope and Field of Operation
In order to provide a mechanism for the reliable
transport of data between two signaling terminals, it is
necessary to define a protocol that can accept and deliver data
over a variety of types of communications links. The AX.25 Link-
Layer Protocol is designed to provide this service, independent
of any other level that may or may not exist.
This protocol conforms to ISO Recommendations 3309, 4335
(including DAD 1&2) and 6256 high-level data link control (HDLC)
and uses some terminology found in these documents. It also
conforms with ANSI X3.66, which describes ADCCP, balanced mode.
This protocol follows, in principle, the CCITT X.25
Recommendation, with the exception of an extended address field
and the addition of the Unnumbered Information (UI) frame. It
also follows the principles of CCITT Recommendation Q.921 (LAPD)
in the use of multiple links, distinguished by the address field,
on a single shared channel.
As defined, this protocol will work equally well in
either half- or full-duplex Amateur Radio environments.
This protocol has been designed to work equally well for
direct connections between two individual amateur packet-radio
stations or an individual station and a multiport controller.
This protocol allows for the establishment of more than
one link-layer connection per device, if the device is so
capable.
This protocol does not prohibit self-connections. A
self-connection is considered to be when a device establishes a
link to itself using its own address for both the source and
destination of the frame.
Most link-layer protocols assume that one primary (or
master) device (generally called a DCE, or data circuit-
terminating equipment) is connected to one or more secondary (or
slave) device(s) (usually called a DTE, or data terminating
equipment). This type of unbalanced operation is not practical
in a shared-RF Amateur Radio environment. Instead, AX.25 assumes
that both ends of the link are of the same class, thereby
eliminating the two different classes of devices. The term DXE
is used in this protocol specification to describe the balanced
type of device found in amateur packet radio.
2.2 Frame Structure
Link layer packet radio transmissions are sent in small
blocks of data, called frames. Each frame is made up of several
smaller groups, called fields. Fig.1 shows the three basic types
of frames. Note that the first bit to be transmitted is on the
left side.
First Bit Sent |
Flag | Address | Control | FCS | Flag |
01111110 | 112/560 Bits | 8 Bits | 16 Bits | 01111110 |
Fig. 1A -- U and S frame construction
First Bit Sent |
Flag | Address | Control | PID | Info. | FCS | Flag |
01111110 | 112/560 Bits | 8 Bits | 8 Bits | N*8 Bits | 16 Bits | 01111110 |
Fig. 1B -- Information frame construction
Each field is made up of an integral number of octets (or
bytes), and serves a specific function as outlined below.
2.2.1 Flag Field
The flag field is one octet long. Since the flag is used
to delimit frames, it occurs at both the beginning and end of
each frame. Two frames may share one flag, which would denote
the end of the first frame, and the start of the next frame. A
flag consists of a zero followed by six ones followed by another
zero, or 01111110 (7E hex). As a result of bit stuffing (see
2.2.6, below), this sequence is not allowed
to occur anywhere else inside a complete frame.
2.2.2 Address Field
The address field is used to identify both the source of
the frame and its destination. In addition, the address field
contains the command/response information and facilities for
level 2 repeater operation.
The encoding of the address field is described in
2.2.13.
2.2.3 Control Field
The control field is used to identify the type of frame
being passed and control several attributes of the level 2
connection. It is one octet in length, and its encoding is
discussed in
2.3.2.1, below.
2.2.4 PID Field
The Protocol Identifier (PID) field shall appear in
information frames (I and UI) only. It identifies what kind of
layer 3 protocol, if any, is in use.
The PID itself is not included as part of the octet count
of the information field. The encoding of the PID is as follows:
HEX |
M L
S S
B B |
Translation |
0x01 |
00000001
| ISO 8208/CCITT X.25 PLP
|
0x08 |
00001000
| Segmentation fragment
|
** |
yy01yyyy |
AX.25 layer 3 implemented.
|
** |
yy10yyyy
| AX.25 layer 3 implemented.
|
0xC3 |
11000011
| TEXNET datagram protocol
|
0xC4 |
11000100
| Link Quality Protocol
|
0xCA |
11001010
| Appletalk
|
0xCB |
11001011
| Appletalk ARP
|
0xCC |
11001100
| ARPA Internet Protocol
|
0xCD |
11001101
| ARPA Address resolution
|
0xCF |
11001111
| NET/ROM
|
0xF0 |
11110000
| No layer 3 protocol implemented.
|
0xFF |
11111111
| Escape character. Next octet contains more Level 3
protocol information.
|
Where:
A y indicates all combinations used.
Note:
All forms of yy11yyyy and yy00yyyy other than those
listed above are reserved at this time for future level 3
protocols. The assignment of these formats is up to amateur
agreement. It is recommended that the creators of level 3
protocols contact the ARRL Ad Hoc Committee on Digital
Communications for suggested encodings.
2.2.5 Information Field
The information field is used to convey user data from
one end of the link to the other. I fields are allowed in only
three types of frames: the I frame, the UI frame, and the FRMR
frame. The I field can be up to 256 octets long, and shall
contain an integral number of octets. These constraints apply
prior to the insertion of zero bits as specified in
2.2.6, below.
Any information in the I field shall be passed along the link
transparently, except for the zero-bit insertion (see
2.2.6)
necessary to prevent flags from accidentally appearing in the I
field.
2.2.6 Bit Stuffing
In order to assure that the flag bit sequence mentioned
above doesn't appear accidentally anywhere else in a frame, the
sending station shall monitor the bit sequence for a group of
five or more contiguous one bits. Any time five contiguous one
bits are sent the sending station shall insert a zero bit after
the first one bit. During frame reception, any time five
contiguous one bits are received, a zero bit immediately
following five one bits shall be discarded.
2.2.7 Frame-Check Sequence
The frame-check sequence (FCS) is a sixteen-bit number
calculated by both the sender and receiver of a frame. It is
used to insure that the frame was not corrupted by the medium
used to get the frame from the sender to the receiver. It shall
be calculated in accordance with ISO 3309 (HDLC) Recommendations.
2.2.8 Order of Bit Transmission
With the exception of the FCS field, all fields of an
AX.25 frame shall be sent with each octet's least-significant bit
first. The FCS shall be sent most-significant bit first.
2.2.9 Invalid Frames
Any frame consisting of less than 136 bits (including the
opening and closing flags), not bounded by opening and closing
flags, or not octet aligned (an integral number of octets), shall
be considered an invalid frame by the link layer. See also
2.4.4.4, below.
2.2.10 Frame Abort
If a frame must be prematurely aborted, at least fifteen
contiguous ones shall be sent with no bit stuffing added.
2.2.11 Interframe Time Fill
Whenever it is necessary for a DXE to keep its
transmitter on while not actually sending frames, the time
between frames should be filled with contiguous flags.
2.2.12 Link Channel States
Not applicable.
2.2.13 Address-Field Encoding
The address field of all frames shall be encoded with
both the destination and source amateur call signs for the frame.
Except for the Secondary Station Identifier (SSID), the address
field should be made up of upper-case alpha and numeric ASCII
characters only. If level 2 amateur "repeaters" are to be used,
their call signs shall also be in the address field.
The HDLC address field is extended beyond one octet by
assigning the least-significant bit of each octet to be an
"extension bit". The extension bit of each octet is set to zero,
to indicate the next octet contains more address information, or
one, to indicate this is the last octet of the HDLC address
field. To make room for this extension bit, the amateur Radio
call sign information is shifted one bit left.
2.2.13.1 Nonrepeater Address-Field Encoding
If level 2 repeaters are not being used, the address
field is encoded as shown in Fig. 2. The destination address is
the call sign and SSID of the amateur radio station to which the
frame is addressed, while the source address contains the amateur
call sign and SSID of the station that sent the frame. These
call signs are the call signs of the two ends of a level 2 AX.25
link only.
First Octet Sent |
Address Field of Frame |
Destination Address
| Source Address |
A1 | A2 | A3 | A4 | A5 | A6 | A7
| A8 | A9 | A10 | A11 | A12 | A13 | A14 |
Fig. 2 -- Nonrepeater Address-Field Encoding
A1 through A14 are the fourteen octets that make up the
two address subfields of the address field. The destination
subaddress is seven octets long (A1 thru A7), and is sent first.
This address sequence provides the receivers of frames time to
check the destination address subfield to see if the frame is
addressed to them while the rest of the frame is being received.
The source address subfield is then sent in octets A8 through
A14. Both of these subfields are encoded in the same manner,
except that the last octet of the address field has the HDLC
address extension bit set.
There is an octet at the end of each address subfield
that contains the Secondary Station Identifier (SSID). The SSID
subfield allows an Amateur Radio operator to have more than one
packet-radio station operating under the same call sign. This is
useful when an amateur wants to put up a repeater in addition to
a regular station, for example. The C bits (see
2.4.1.2, below)
and H bit (see
2.2.13.2, below)
are also contained in this octet,
along with two bits which are reserved for future use.
Fig. 3A shows a typical AX.25 frame in the nonrepeater
mode of operation.
Octet | ASCII | Bin.Data | Hex Data |
Flag | | 011111107E | |
A1 | K | 1001011096 | |
A2 | 8 | 0111000070 | |
A3 | M | 100110109A | |
A4 | M | 100110109A | |
A5 | O | 100111109E | |
A6 | space | 0100000040 | |
A7 | SSID | 11100000E0 | |
A8 | W | 10101110AE | |
A9 | B | 1000010084 | |
A10 | 4 | 0110010068 | |
A11 | J | 1001010094 | |
A12 | F | 100011008C | |
A13 | I | 1001001092 | |
A14 | SSID | 0110000161 | |
Control | I | 001111103E | |
PID | none | 11110000F0 | |
FCS | part 1 | xxxxxxxxHH | |
FCS | part 2 | xxxxxxxxHH | |
Flag | | 011111107E | |
Bit position | 76543210 | |
Fig. 3A -- Nonrepeater AX.25 frame
The frame shown is an I frame, not going through a level
2 repeater, from WB4JFI (SSID=0) to K8MMO (SSID=0), with no level
3 protocol. The P/F bit is set; the receive sequence number
(N(R)) is 1; the send sequence number (N(S)) is 7.
2.2.13.1.1 Destination Subfield Encoding
Fig. 3 shows how an amateur call sign is placed in the
destination address subfield, occupying octets A1 thru A7.
Octet | ASCII | Bin.Data | Hex Data |
A1 | W | 10101110 | AE |
A2 | B | 10000100 | 84 |
A3 | 4 | 01101000 | 68 |
A4 | J | 10010100 | 94 |
A5 | F | 10001100 | 8C |
A6 | I | 10010010 | 92 |
A7 | SSID | CRRSSID0 | |
Bit Position | 76543210 | |
Fig. 3 -- Destination Field Encoding
Where:
- The top octet (A1) is the first octet sent, with bit
0 of each octet being the first bit sent, and bit 7
being the last bit sent.
- The first (low-order or bit 0) bit of each octet is
the HDLC address extension bit, which is set to zero
on all but the last octet in the address field, where
it is set to one.
- The bits marked "r" are reserved bits. They may be
used in an agreed-upon manner in individual networks.
When not implemented, they should be set to one.
- The bit marked "C" is used as the command/response
bit of an AX.25 frame, as outlined in
2.4.1.2 below.
- The characters of the call sign should be standard
seven-bit ASCII (upper case only) placed in the
leftmost seven bits of the octet to make room for the
address extension bit. If the call sign contains
fewer than six characters, it should be padded with
ASCII spaces between the last call sign character and
the SSID octet.
- The 0000 SSID is reserved for the first personal
AX.25 station. This establishes one standard SSID for
"normal" stations to use for the first station.
2.2.13.2 Level 2 Repeater-Address Encoding
If a frame is to go through level 2 amateur packet
repeater(s), there is an additional address subfield appended to
the end of the address field. This additional subfield contains
the call sign(s) of the repeater(s) to be used. This allows more
than one repeater to share the same RF channel. If this subfield
exists, the last octet of the source subfield has its address
extension bit set to zero, indicating that more address-field
data follows. The repeater-address subfield is encoded in the
same manner as the destination and source address subfields,
except for the most-significant bit in the last octet, called the
"H" bit. The H bit is used to indicate whether a frame has been
repeated or not.
In order to provide some method of indicating when a
frame has been repeated, the H bit is set to zero on frames going
to a repeater. The repeater will set the H bit to one when the
frame is retransmitted. Stations should monitor the H bit, and
discard any frames going to the repeater (uplink frames), while
operating through a repeater. Fig. 4 shows how the repeater-
address subfield is encoded. Fig. 4A is an example of a complete
frame after being repeated.
Octet | ASCII | Bin.Data | Hex Data |
A15 | W | 10101110 | AE |
A16 | B | 10000100 | 84 |
A17 | 4 | 01101000 | 68 |
A18 | J | 10010100 | 94 |
A19 | F | 10001100 | 8C |
A20 | I | 10010010 | 92 |
A21 | SSID | HRRSSID1 | |
Bit Order --> | 76543210 |
Fig. 4 -- Repeater-address encoding
Where:
- The top octet is the first octet sent, with bit 0 being
sent first and bit 7 sent last of each octet.
- As with the source and destination address subfields
discussed above, bit 0 of each octet is the HDLC address
extension bit, which is set to zero on all but the last
address octet, where it is set to one.
- The "R" bits are reserved in the same manner as in the
source and destination subfields.
- The "H" bit is the has-been-repeated bit. It is set to
zero whenever a frame has not been repeated, and set to
one by the repeater when the frame has been repeated.
Octet | ASCII | Bin.Data | Hex Data |
Flag | | 011111107E | |
A1 | K | 1001011096 | |
A2 | 8 | 0111000070 | |
A3 | M | 100110109A | |
A4 | M | 100110109A | |
A5 | O | 100111109E | |
A6 | space | 0100000040 | |
A7 | SSID | 11100000E0 | |
A8 | W | 10101110AE | |
A9 | B | 1000010084 | |
A10 | 4 | 0110010068 | |
A11 | J | 1001010094 | |
A12 | F | 100011008C | |
A13 | I | 1001001092 | |
A14 | SSID | 0110000060 | |
A15 | W | 10101110AE | |
A16 | B | 1000010084 | |
A17 | 4 | 0110100068 | |
A18 | J | 1001010094 | |
A19 | F | 100011008C | |
A20 | I | 1001001092 | |
A21 | SSID | 11100011E3 | |
Control | I | 001111103E | |
PID | none | 11110000F0 | |
FCS | part 1 | xxxxxxxxHH | |
FCS | part 2 | xxxxxxxxHH | |
Flag | | 011111107E | |
Bit position | 76543210 | |
Fig. 4A -- AX.25 frame in repeater mode
The above frame is the same as Fig. 3A,
except for the
addition of a repeater-address subfield (WB4JFI, SSID=1). The H
bit is set, indicating this is from the output of the repeater.
2.2.13.3 Multiple Repeater Operation
The link-layer AX.25 protocol allows operation through
more than one repeater, creating a primitive frame routing
mechanism. Up to eight repeaters may be used by extending the
repeater-address subfield. When there is more than one repeater
address, the repeater address immediately following the source
address subfield will be considered the address of the first
repeater of a multiple-repeater chain. As a frame progresses
through a chain of repeaters, each successive repeater will set
the H bit (has-been-repeated bit) in its SSID octet, indicating
that the frame has been successfully repeated through it. No
other changes to the frame are made (except for the necessary
recalculation of the FCS). The destination station can determine
the route the frame took to each it by examining the address
field.
The number of repeater addresses is variable. All but
the last repeater address will have the address extension bits of
all octets set to zero, as will all but the last octet (SSID
octet) of the last repeater address. The last octet of the last
repeater address will have the address extension bit set to one,
indicating the end of the address field.
It should be noted that various timers (see
2.4.7, below)
may have to be adjusted to accommodate the additional delays
encountered when a frame must pass through a multiple-repeater
chain, and the return acknowledgement must travel through the
same path before reaching the source device.
It is anticipated that multiple-repeater operation is a
temporary method of interconnecting stations over large distances
until such time that a layer 3 protocol is in use. Once this
layer 3 protocol becomes operational, repeater chaining should be
phased out.
2.3 Elements of Procedure
2.3.1
The elements of procedure are defined in terms of actions
that occur on receipt of frames.
2.3.2 Control-Field Formats and State Variables
2.3.2.1 Control-Field Formats
The control field is responsible for identifying the type
of frame being sent, and is also used to convey commands and
responses from one end of the link to the other in order to
maintain proper link control.
The control fields used in AX.25 use the CCITT X.25
control fields for balanced operation (LAPB), with an additional
control field taken from ADCCP to allow connectionless and round-
table operation.
There are three general types of AX.25 frames. They are
the Information frame (I frame), the Supervisory frame (S frame),
and the Unnumbered frame (U frame). Fig. 5 shows the basic
format of the control field associated with these types of
frames.
Control-Field Type
| Control-Field Bits |
7 | 6 | 5 | 4
| 3 | 2 | 1 | 0 |
I Frame | N(R) | P
| N(S) | 0 |
S Frame | N(R) | P/F | S | S | 0 | 1 |
U Frame | M | M | M | P/F | M | M | 1 | 1 |
Fig. 5 -- Control-field formats
Where:
- Bit 0 is the first bit sent and bit 7 is the last bit
sent of the control field.
- N(S) is the send sequence number (bit 1 is the LSB).
- N(R) is the receive sequence number (bit 5 is the
LSB).
- The "S" bits are the supervisory function bits, and
their encoding is discussed in 2.3.4.2.
- The "M" bits are the unnumbered frame modifier bits
and their encoding is discussed in 2.3.4.3.
- The P/F bit is the Poll/Final bit. Its function is
described in 2.3.3. The distinction between command
and response, and therefore the distinction between P
bit and F bit, is made by addressing rules discussed
in 2.4.1.2.
2.3.2.1.1 Information-Transfer Format
All I frames have bit 0 of the control field set to zero.
N(S) is the sender's send sequence number (the send sequence
number of this frame). N(R) is the sender's receive sequence
number (the sequence number of the next expected received frame).
These numbers are described in 2.3.2.4.
In addition, the P/F bit
is to be used as described in 2.4.2.
2.3.2.1.2 Supervisory Format
Supervisory frames are denoted by having bit 0 of the
control field set to one, and bit 1 of the control field set to
zero. S frames provide supervisory link control such as
acknowledging or requesting retransmission of I frames, and link-
level window control. Since S frames do not have an information
field, the sender's send variable and the receiver's receive
variable are not incremented for S frames. In addition, the P/F
bit is used as described in
2.4.2.
2.3.2.1.3 Unnumbered Format
Unnumbered frames are distinguished by having both bits 0
and 1 of the control field set to one. U frames are responsible
for maintaining additional control over the link beyond what is
accomplished with S frames. They are also responsible for
establishing and terminating link connections. U frames also
allow for the transmission and reception of information outside
of the normal flow control. Some U frames may contain
information and PID fields. The P/F bit is used as described in
2.4.2.
2.3.2.2 Control-Field Parameters
2.3.2.3 Sequence Numbers
Every AX.25 I frame shall be assigned, modulo 8, a
sequential number from 0 to 7. This will allow up to seven
outstanding I frames per level 2 connection at a time.
2.3.2.4 Frame Variables and Sequence Numbers
2.3.2.4.1 Send State Variable V(S)
The send state variable is a variable that is internal to
the DXE and is never sent. It contains the next sequential
number to be assigned to the next transmitted I frame. This
variable is updated upon the transmission of each I frame.
2.3.2.4.2 Send Sequence Number N(S)
The send sequence number is found in the control field of
all I frames. It contains the sequence number of the I frame
being sent. Just prior to the transmission of the I frame, N(S)
is updated to equal the send state variable.
2.3.2.4.3 Receive State Variable V(R)
The receive state variable is a variable that is internal
to the DXE. It contains the sequence number of the next expected
received I frame. This variable is updated upon the reception of
an error-free I frame whose send sequence number equals the
present received state variable value.
2.3.2.4.4 Received Sequence Number N(R)
The received sequence number is in both I and S frames.
Prior to sending an I or S frame, this variable is updated to
equal that of the received state variable, thus implicitly
acknowledging the proper reception of all frames up to and
including N(R)-1.
2.3.3 Functions of Poll/Final (P/F) Bit
The P/F bit is used in all types of frames. It is used
in a command (poll) mode to request an immediate reply to a
frame. The reply to this poll is indicated by setting the
response (final) bit in the appropriate frame. Only one
outstanding poll condition per direction is allowed at a time.
The procedure for P/F bit operation is described in
2.4.2.
2.3.4 Control Field Coding for Commands and Responses
The following commands and responses, indicated by their
control field encoding, are to be use by the DXE:
2.3.4.1 Information Command Frame Control Field
The function of the information (I) command is to
transfer across a data link sequentially numbered frames
containing an information field.
The information-frame control field is encoded as shown
in Fig. 6. These frames are sequentially numbered by the N(S)
subfield to maintain control of their passage over the link-layer
connection.
Control Field Bits |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
N(R)
| P | N(S) | 0 |
Fig. 6 -- I frame control field
2.3.4.2 Supervisory Frame Control Field
The supervisory frame control fields are encoded as shown
in Fig. 7.
Control Field Type
| Control Field Bits |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Receive Ready | RR
| N(R) | P/F | 0 | 0 | 0 | 1 |
Receive Not Ready | RNR
| N(R) | P/F | 0 | 1 | 0 | 1 |
Reject | REJ
| N(R) | P/F | 1 | 0 | 0 | 1 |
Fig. 7 -- S frame control fields
The Frame identifiers:
C or SABM | Layer 2 Connect Request |
D or DISC | Layer 2 Disconnect Request |
I | Information Frame |
RR | Receive Ready. System Ready To Receive |
RNR or NR | Receive Not Ready. TNC Buffer Full |
RJ or REJ | Reject Frame. Out of Sequence or Duplicate |
FRMR | Frame Reject. Fatal Error |
UI | Unnumbered Information Frame. "Unproto" |
DM | Disconnect Mode. System Busy or Disconnected. |
2.3.4.2.1 Receive Ready (RR) Command and Response
Receive Ready is used to do the following:
- to indicate that the sender of the RR is now able to
receive more I frames.
- to acknowledge properly received I frames up to, and
including N(R)-1, and
- to clear a previously set busy condition created by an RNR
command having been sent.
The status of the DXE at the other end of the link can be
requested by sending a RR command frame with the P-bit set to
one.
2.3.4.2.2 Receive Not Ready (RNR) Command and Response
Receive Not Ready is used to indicate to the sender of I
frames that the receiving DXE is temporarily busy and cannot
accept any more I frames. Frames up to N(R)-1 are acknowledged.
Any I frames numbered N(R) and higher that might have been caught
between states and not acknowledged when the RNR command was sent
are not acknowledged.
The RNR condition can be cleared by the sending of a UA,
RR, REJ, or SABM frame.
The status of the DXE at the other end of the link can be
requested by sending a RNR command frame with the P bit set to
one.
2.3.4.2.3 Reject (REJ) Command and Response
The reject frame is used to request retransmission of I
frames starting with N(R). Any frames that were sent with a
sequence number of N(R)-1 or less are acknowledged. Additional I
frames may be appended to the retransmission of the N(R) frame if
there are any.
Only one reject frame condition is allowed in each
direction at a time. The reject condition is cleared by the
proper reception of I frames up to the I frame that caused the
reject condition to be initiated.
The status of the DXE at the other end of the link can be
requested by sending a REJ command frame with the P bit set to
one.
2.3.4.3 Unnumbered Frame Control Fields
Unnumbered frame control fields are either commands or
responses.
Fig. 8 shows the layout of U frames implemented within
this protocol.
Control Field Type
| Control Field Bits |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Set Asynchronous Balanced Mode | SABM | Res
| 0 | 0 | 1 | P | 1 | 1 | 1 | 1 |
Disconnect | DISC | Cmd
| 0 | 1 | 0 | P | 0 | 0 | 1 | 1 |
Disconnected Mode | DM | Res
| 0 | 0 | 0 | F | 1 | 1 | 1 | 1 |
Unnumbered Acknowledge | UA | Res
| 0 | 1 | 1 | F | 0 | 0 | 1 | 1 |
Frame Reject | FRMR | Res
| 1 | 0 | 0 | F | 0 | 1 | 1 | 1 |
Unnumbered Information | UI | Either
| 0 | 0 | 0 | P/F | 0 | 0 | 1 | 1 |
Fig. 8 -- U frame control fields
2.3.4.3.1 Set Asynchronous Balanced Mode (SABM) Command
The SABM command is used to place 2 DXEs in the
asynchronous balanced mode. This is a balanced mode of operation
known as LAPB where both devices are treated as equals.
Information fields are not allowed in SABM commands. Any
outstanding I frames left when the SABM command is issued will
remain unacknowledged.
The DXE confirms reception and acceptance of a SABM
command by sending a UA response frame at the earliest
opportunity. If the DXE is not capable of accepting a SABM
command, it should respond with a DM frame if possible.
2.3.4.3.2 Disconnect (DISC) Command
The DISC command is used to terminate a link session
between two stations. No information field is permitted in a
DISC command frame.
Prior to acting on the DISC frame, the receiving DXE
confirms acceptance of the DISC by issuing a UA response frame at
its earliest opportunity. The DXE sending the DISC enters the
disconnected state when it receives the UA response.
Any unacknowledged I frames left when this command is
acted upon will remain unacknowledged.
2.3.4.3.3 Frame Reject (FRMR) Response
2.3.4.3.3.1
The FRMR response frame is sent to report that the receiver
of a frame cannot successfully process that frame and that the
error condition is not correctable by sending the offending frame
again. Typically this condition will appear when a frame without
an FCS error has been received with one of the following
conditions:
- The reception of an invalid or not implemented command or
response frame.
- The reception of an I frame whose information field exceeds
the agreed-upon length.
(See 2.4.7.3, below.)
- The reception of an improper N(R). This usually happens
when the N(R) frame has already been sent and acknowledged,
or when N(R) is out of sequence with what was expected.
- The reception of a frame with an information field where one
is not allowed, or the reception of a U or S frame whose
length is incorrect. Bits W and Y described in
2.3.4.3.3.2
should both be set to one to indicate this condition.
- The reception of a supervisory frame with the F bit set
to one, except during a timer recovery condition (see
2.4.4.9),
or except as a reply to a command frame sent with
the P bit set to one. Bit W (described in
2.3.4.3.3.2)
should be set to one.
- The reception of an unexpected UA or DM response frame. Bit
W should be set to one.
- The reception of a frame with an invalid N(S). Bit W should be
set to one.
An invalid N(R) is defined as one which points to an I
frame that previously has been transmitted and acknowledged, or
an I frame which has not been transmitted and is not the next
sequential I frame pending transmission.
An invalid N(S) is defined as an N(S) that is equal to
the last transmitted N(R)+k and is equal to the received state
variable V(R), where k is the maximum number of outstanding
information frames as defined in 2.4.7.4 below.
An invalid or not implemented command or response is
defined as a frame with a control field that is unknown to the
receiver of this frame.
2.3.4.3.3.2
When a FRMR frame is sent, an information field is added to
the frame that contains additional information indicating where
the problem occurred. This information field is three octets
long and is shown in Fig. 9.
Information Field Bits |
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 0 | 0 | 0 | Z | Y | X | W
| V(R) | C R
| V(S) | 0
| Rejected Frame Control Field |
Fig. 9 -- FRMR frame information field
Where:
- The rejected frame control field carries the control field
of the frame that caused the reject condition. It is in
bits 0-7 of the information field.
- V(S) is the current send state variable of the device
reporting the rejection (bit 9 is the low bit).
- The CR bit is set to zero to indicate the rejected frame
was a command, or one if it was a response.
- V(R) is the current receive state variable of the device
reporting rejection (bit 13 is the low bit).
- If W is set to 1, the control field received was invalid or
not implemented.
- If X is set to 1, the frame that caused the reject
condition was considered invalid because it was a U or S
frame that had an information field that is not allowed.
Bit W must be set to 1 in addition to the X bit.
- If Y is set to 1, the control field received and returned
in bits exceeded the maximum allowed under this
recommendation in 2.4.7.3, below.
- If A is set to 1, the control field received and returned
in bits 1 to 8 contained an invalid N(R).
- Bits 8, and 20 to 23 are set to 0.
2.3.4.3.4 Unnumbered Acknowledge (UA) Response
The UA response frame is sent to acknowledge the
reception and acceptance of a SABM or DISC command frame. A
received command is not actually processed until the UA response
frame is sent. Information fields are not permitted in a UA
frame.
2.3.4.3.5 Disconnected Mode (DM) Response
The disconnected mode response is sent whenever a DXE
receives a frame other than a SABM or UI frame while in a
disconnected mode. It is also sent to request a set mode
command, or to indicate it cannot accept a connection at the
moment. The DM response does not have an information field.
Whenever a SABM frame is a received, and it is determined
that a connection is not possible, a DM frame shall be sent.
This will indicate that the called station cannot accept a
connection at that time.
While a DXE is in the disconnected mode, it will respond
to any command other than a SABM or UI frame with a DM response
with the P/F bit set to 1.
2.3.4.3.6 Unnumbered Information (UI) Frame
The Unnumbered Information frame contains PID and
information fields and is used to pass information along the link
outside the normal information controls. This allows information
fields to go back and forth on the link bypassing flow control.
Since these frames are not acknowledgeable, if one gets
obliterated, there is no way to recover it. A received UI frame
with the P bit set shall cause a response to be transmitted.
This response shall be a DM frame when in the disconnected state
or a RR (or RNR, if appropriate) frame in the information
transfer state.
2.3.5 Link Error Reporting and Recovery
There are several link-layer errors that are recoverable
without terminating the connection. These error situations may
occur as a result of malfunctions within the DXE, or if
transmission errors occur.
2.3.5.1 DXE Busy Condition
When a DXE becomes temporarily unable to receive I
frames, such as when receive buffers are full, it will send a
Receive Not Ready (RNR) frame. This informs the other DXE that
this DXE cannot handle any more I frames at the moment. This
condition is usually cleared by the sending of a UA, RR, REJ, or
SABM command frame.
2.3.5.2 Send Sequence Number Error
If the send sequence number, N(S), of an otherwise error-
free received frame does not match the receive state variable,
V(R), a send sequence error has occurred, and the information
field will be discarded. The receiver will not acknowledge this
frame, or any other I frames, until N(S) matches V(R).
The control field of the erroneous I frame(s) will be
accepted so that link supervisory functions such as checking the
P/F bit can still be performed. Because of this updating, the
retransmitted I frame may have an updated P bit and N(R).
2.3.5.3 Reject (REJ) Recovery
REJ is used to request a retransmission of I frames
following the detection of a N(S) sequence error. Only one
outstanding "sent REJ" condition is allowed at a time. This
condition is cleared when the requested I frame has been
received.
A DXE receiving the REJ command will clear the condition
by resending all outstanding I frames (up to the window size),
starting with the one indicated in N(R) of the REJ frame.
2.3.5.4 Time-out Error Recovery
2.3.5.4.1 T1 Timer Recovery
If a DXE, due to a transmission error, does not receive
(or receives and discards) a single I frame or the last I frame
in a sequence of I frames, it will not detect a send-sequence-
number error, and therefore will not transmit a REJ. The DXE
which transmitted the unacknowledged I frame(s) shall, following
the completion of time-out period T1, take appropriate recovery
action to determine when I frame retransmission should begin as
described in 2.4.4.9, below. This condition is cleared by the
reception of an acknowledgement for the sent frame(s), or by the
link being reset. See 2.4.6.
2.3.5.4.2 Timer T3 Recovery
Timer T3 is used to assure the link is still functional
during periods of low information transfer. Whenever T1 is not
running (no outstanding I frames), T3 is used to periodically
poll the other DXE of a link. When T3 times out, a RR or RNR
frame is transmitted as a command and with the P bit set. The
waiting acknowledgement procedure (2.4.4.9, below) is then
executed.
2.3.5.5 Invalid Frame or FCS Error
If an invalid frame is received, or a frame is received
with an FCS error, that frame will be discarded with no action
taken.
2.3.5.6 Frame Rejection Condition
A frame rejection condition occurs when an otherwise
error-free frame has been received with one of the conditions
listed in 2.3.4.3.3 above.
Once a rejection error occurs, no more I frames are
accepted (except for the examination of the P/F bit) until the
error is resolved. The error condition is reported to the other
DXE by sending a FRMR response frame. See 2.4.5.
2.4 Description of AX.25 Procedures
The following describes the procedures used to setup,
use, and disconnect a balanced link between two DXE stations.
2.4.1 Address Field Operation
2.4.1.1 Address Information
All transmitted frames shall have address fields
conforming to 2.2.13, above. All frames shall have both the
destination device and the source device addresses in the address
field, with the destination address coming first. This allows
many links to share the same RF channel. The destination address
is always the address of the station(s) to receive the frame,
while the source address contains the address of the device that
sent the frame.
The destination address can be a group name or club call
sign if the point-to-multipoint operation is allowed. Operation
with destination addresses other than actual amateur call signs
is a subject for further study.
2.4.1.2 Command/Response Procedure
AX.25 Version 2.0 has implemented the command/response
information in the address field. In order to maintain
compatibility with previous versions of AX.25, the
command/response information is conveyed using two bits.
An upward-compatible AX.25 DXE can determine whether it
is communicating with a DXE using an older version of this
protocol by testing the command/response bit information located
in bit 7 of the SSID octets of both the destination and source
address subfields. If both C bits are set to zero, the device is
using the older protocol. The newer version of the protocol
always has one of these two bits set to one and the other set to
zero, depending on whether the frame is a command or a response.
The command/response information is encoded into the
address field as shown in Fig. 10.
Frame Type | Dest. SSID C-Bit | Source SSID C-Bit |
Previous versions | 0 | 0 |
Command (V.2.0) | 1 | 0 |
Response (V.2.0) | 0 | 1 |
Previous versions | 1 | 1 |
Fig. 10 -- Command/Response encoding
Since all frames are considered either commands or
responses, a device shall always have one of the bits set to one,
and the other bit set to zero.
The use of the command/response information in AX.25
allows S frames to be either commands or responses. This aids
maintenance of proper control over the link during the
information transfer state.
2.4.2 P/F Bit Procedures
The next response frame returned by the DXE to a SABM or
DISC command with the P bit set to 1 will be a UA or DM response
with the F bit set to 1.
The next response frame returned to an I frame with the P
bit set to 1, received during the information transfer state,
will be a RR, RNR, or REJ response with the F bit set to 1.
The next response frame returned to a supervisory command
frame with the P bit set to 1, received during the information
transfer state, will be a RR, RNR, or REJ response frame with the
F bit set to 1.
The next response frame returned to a S or I command
frame with the P bit set to 1, received in the disconnected
state, will be a DM response frame with the F bit set to 1.
The P bit is used in conjunction with the time-out
recovery condition discussed in 2.3.5.4, above.
When not used, the P/F bit is set to zero.
2.4.3 Procedures For Link Set-Up and Disconnection
2.4.3.1 LAPB Link Connection Establishment
When one DXE wishes to connect to another DXE, it will
send a SABM command frame to that device and start timer (T1).
If the other DXE is there and able to connect, it will respond
with a UA response frame, and reset both of its internal state
variables (V(S) and V(R)). The reception of the UA response
frame at the other end will cause the DXE requesting the
connection to cancel the T1 timer and set its internal state
variables to 0.
If the other DXE doesn't respond before T1 times out, the
device requesting the connection will re-send the SABM frame, and
start T1 running again. The DXE should continue to try to
establish a connection until it has tried unsuccessfully N2
times. N2 is defined in 2.4.7.2, below.
If, upon reception of a SABM command, the DXE decides
that it cannot enter the indicated state, it should send a DM
frame.
When receiving a DM response, the DXE sending the SABM
should cancel its T1 timer, and not enter the information-
transfer state.
The DXE sending a SABM command will ignore and discard
any frames except SABM, DISC, UA, and DM frames from the other
DXE.
Frames other than UA and DM in response to a received
SABM will be sent only after the link is set up and if no
outstanding SABM exists.
2.4.3.2 Information-Transfer Phase
After establishing a link connection, the DXE will enter
the information-transfer state. In this state, the DXE will
accept and transmit I and S frames according to the procedure
outlined in 2.4.4, below.
When receiving a SABM command while in the information-
transfer state, the DXE will follow the resetting procedure
outlined in 2.4.6 below.
2.4.3.3 Link Disconnection
2.4.3.3.1
While in the information-transfer state, either DXE may
indicate a request to disconnect the link by transmitting a DISC
command frame and starting timer T1 (see 2.4.7).
2.4.3.3.2
A DXE, upon receiving a valid DISC command, shall send a UA
response frame and enter the disconnected state. A DXE, upon
receiving a UA or DM response to a sent DISC command, shall
cancel timer T1, and enter the disconnected state.
2.4.3.3.3
If a UA or DM response is not correctly received before T1
times out, the DISC frame should be sent again and T1 restarted.
If this happens N2 times, the DXE should enter the disconnected
state.
2.4.3.4 Disconnected State
2.4.3.4.1
A DXE in the disconnected state shall monitor received
commands and react upon the reception of a SABM as described in
2.4.3.1 above and will transmit a DM frame
in response to a DISC command.
2.4.3.4.2
In the disconnected state, a DXE may initiate a link set-up
as outlined in connection establishment above (2.4.3.1). It may
also respond to the reception of a SABM and establish a
connection, or it may ignore the SABM and send a DM instead.
2.4.3.4.3
Any DXE receiving a command frame other than a SABM or UI
frame with the P bit set to one should respond with a DM frame
with the F bit set to one. The offending frame should be
ignored.
2.4.3.4.4
When the DXE enters the disconnected state after an error
condition or if an internal error has resulted in the DXE being
in the disconnected state, the DXE should indicate this by
sending a DM response rather than a DISC frame and follow the
link disconnection procedure outlined in 2.4.3.3.3, above. The
DXE may then try to re-establish the link using the link set-up
procedure outlined in 2.4.3.1, above.
2.4.3.5 Collision Recovery
2.4.3.5.1 Collisions in a Half-Duplex Environment
Collisions of frames in a half-duplex environment are
taken care of by the retry nature of the T1 timer and
retransmission count variable. No other special action needs to
be taken.
2.4.3.5.2 Collisions of Unnumbered Commands
If sent and received SABM or DISC command frames are the
same, both DXEs should send a UA response at the earliest
opportunity, and both devices should enter the indicated state.
If sent and received SABM or DISC commands are different,
both DXEs should enter the disconnected state and transmit a DM
frame at the earliest opportunity.
2.4.3.5.3 Collision of a DM with a SABM or DISC
When an unsolicited DM response frame is sent, a
collision between it and a SABM or DISC may occur. In order to
prevent this DM from being misinterpreted, all unsolicited DM
frames should be transmitted with the F bit set to zero. All
SABM and DISC frames should be sent with the P bit set to one.
This will prevent any confusion when a DM frame is received.
2.4.3.6 Connectionless Operation
In Amateur Radio, there is an additional type of
operation that is not feasible using level 2 connections. This
operation is the round table, where several amateurs may be
engaged in one conversation. This type of operation cannot be
accommodated by AX.25 link-layer connections.
The way round-table activity is implemented is
technically outside the AX.25 connection, but still using the
AX.25 frame structure.
AX.25 uses a special frame for this operation, called the
Unnumbered Information (UI) frame. When this type of operation
is used, the destination address should have a code word
installed in it to prevent the users of that particular round
table from seeing all frames going through the shared RF medium.
An example of this is if a group of amateurs are in a round-table
discussion about packet radio, they could put PACKET in the
destination address, so they would receive frames only from
others in the same discussion. An added advantage of the use of
AX.25 in this manner is that the source of each frame is in the
source address subfield, so software could be written to
automatically display who is making what comments.
Since this mode is connectionless, there will be no
requests for retransmissions of bad frames. Collisions will also
occur, with the potential of losing the frames that collided.
2.4.4 Procedures for Information Transfer
Once a connection has been established, as outlined
above, both devices are able to accept I, S, and U frames.
2.4.4.1 Sending I Frames
Whenever a DXE has an I frame to transmit, it will send
the I frame with N(S) of the control field equal to its current
send state variable V(S). Once the I frame is sent, the send
state variable is incremented by one. If timer T1 is not
running, it should be started. If timer T1 is running, it should
be restarted.
The DXE should not transmit any more I frames if its send
state variable equals the last received N(R) from the other side
of the link plus seven. If it were to send more I frames, the
flow control window would be exceed, and errors could result.
If a DXE is in a busy condition, it may still send I
frames as long as the other device is not also busy.
If a DXE is in the frame-rejection mode, it will stop
sending I frames.
2.4.4.2 Receiving I Frames
2.4.4.2.1
If a DXE receives a valid I frame (one with a correct FCS
and whose send sequence number equals the receiver's receive
state variable) and is not in the busy condition, it will accept
the received I frame, increment its receive state variable, and
act in one of the following manners:
- If it has an I frame to send, that I frame may be sent with the
transmitted N(R) equal to its receive state variable V(R) (thus
acknowledging the received frame). Alternately, the device may
send a RR frame with N(R) equal to V(R), and then send the I
frame.
- If there are no outstanding I frames, the receiving device will
send a RR frame with N(R) equal to V(R). The receiving DXE may
wait a small period of time before sending the RR frame to be sure
additional I frames are not being transmitted.
2.4.4.2.2
If the DXE is in a busy condition, it may ignore any
received I frames without reporting this condition other than
repeating the indication of the busy condition.
If a busy condition exists, the DXE receiving the busy
condition indication should poll the sender of the busy
indication periodically until the busy condition disappears.
A DXE may poll the busy DXE periodically with RR or RNR
frames with the P bit set to one.
The reception of I frames that contain zero-length
information fields shall be reported to the next level but no
information field will be transferred.
2.4.4.3 Reception of Out of Sequence Frames
When an I frame is received with a correct FCS, but its
send sequence number, N(S), does not match the current receiver's
receive state variable, the frame should be discarded. A REJ
frame shall be sent with a receive sequence number equal to one
higher (modulo 8) than the last correctly received I frame if an
uncleared N(S) sequence error condition has not been previously
established. The received state variable and poll bit of the
discarded frame should be checked and acted upon, if necessary,
before discarding the frame.
2.4.4.4 Reception of Incorrect Frames
When a DXE receives a frame with an incorrect FCS, an
invalid frame, or a frame with an improper address, that frame
shall be discarded.
2.4.4.5 Receiving Acknowledgement
Whenever an I or S frame is correctly received, even in a
busy condition, the N(R) of the received frame should be checked
to see if it includes an acknowledgement of outstanding sent I
frames. The T1 timer should be cancelled if the received frame
actually acknowledges previously unacknowledged frames. If the
T1 timer is cancelled and there are still some frames that have
been sent that are not acknowledged, T1 should be started again.
If the T1 timer runs out before an acknowledgement is received,
the device should proceed to the retransmission procedure in
2.4.4.9.
2.4.4.6 Receiving Reject
Upon receiving a REJ frame, the transmitting DXE will set
its send state variable to the same value as the REJ frame's
received sequence number in the control field. The DXE will then
retransmit any I frame(s) outstanding at the next available
opportunity conforming to the following:
- If the DXE is not transmitting at the time, and the channel
is open, the device may commence to retransmit the I
frame(s) immediately.
- If the DXE is operating on a full-duplex channel
transmitting a UI or S frame when it receives a REJ frame,
it may finish sending the UI or S frame and then retransmit
the I frame(s).
- If the DXE is operating in a full-duplex channel
transmitting another I frame when it receives a REJ frame,
it may abort the I frame it was sending and start
retransmission of the requested I frames immediately.
- The DXE may send just the one I frame outstanding, or it may
send more than the one indicated if more I frames followed
the first one not acknowledged, provided the total to be
sent does not exceed the flow-control window (7 frames).
If the DXE receives a REJ frame with the poll bit set, it
should respond with either a RR or RNR frame with the final bit
set before retransmitting the outstanding I frame(s).
2.4.4.7 Receiving a RNR Frame
Whenever a DXE receives a RNR frame, it shall stop
transmission of I frames until the busy condition has been
cleared. If timer T1 runs out after the RNR was received, the
waiting acknowledgement procedure listed in 2.4.4.9, below,
should be performed. The poll bit may be used in conjunction
with S frames to test for a change in the condition of the
busied-out DXE.
2.4.4.8 Sending a Busy Indication
Whenever a DXE enters a busy condition, it will indicate
this by sending a RNR response at the next opportunity. While
the DXE is in the busy condition, it may receive and process S
frames, and if a received S frame has the P bit set to one, the
DXE should send a RNR frame with the F bit set to one at the next
possible opportunity. To clear the busy condition, the DXE
should send either a RR or REJ frame with the received sequence
number equal to the current receive state variable, depending on
whether the last received I frame was properly received or not.
2.4.4.9 Waiting Acknowledgement
If timer T1 runs out waiting the acknowledgement from the
other DXE for an I frame transmitted, the DXE will restart timer
T1 and transmit an appropriate supervisory command frame (RR or
RNR) with the P bit set. If the DXE receives correctly a
supervisory response frame with the F bit set and with an N(R)
within the range from the last N(R) received to the last N(S)
sent plus one, the DXE will restart timer T1 and will set its
send state variable V(S) to the received N(R). It may then
resume with I frame transmission or retransmission, as
appropriate. If, on the other hand, the DXE receives correctly a
supervisory response frame with the F bit not set, or an I frame
or supervisory command frame, and with an N(R) within the range
from the last N(R) received to the last N(S) sent plus one, the
DXE will not restart timer T1, but will use the received N(R) as
an indication of acknowledgement of transmitted I frames up to
and including I frame numbered N(R)-1.
If timer T1 runs out before a supervisory response frame
with the F bit set is received, the DXE will retransmit an
appropriate supervisory command frame (RR or RNR) with the P bit
set. After N2 attempts to get a supervisory response frame with
the F bit set from the other DXE, the DXE will initiate a link
resetting procedure as described in 2.4.6, below.
2.4.5 Frame Rejection Conditions
A DXE shall initiate the frame-reset procedure when a
frame is received with the correct FCS and address field during
the information-transfer state with one or more of the conditions
in 2.3.4.3.3, above.
Under these conditions, the DXE will ask the other DXE to
reset the link by transmitting a FRMR response as outlined in
2.4.6.3, below.
After sending the FRMR frame, the sending DXE will enter
the frame reject condition. This condition is cleared when the
DXE that sent the FRMR frame receives a SABM or DISC command, or
a DM response frame. Any other command received while the DXE is
in the frame reject state will cause another FRMR to be sent out
with the same information field as originally sent.
In the frame rejection condition, additional I frames
will not be transmitted, and received I frames and S frames will
be discarded by the DXE.
The DXE that sent the FRMR frame shall start the T1 timer
when the FRMR is sent. If no SABM or DISC frame is received
before the timer runs out, the FRMR frame shall be retransmitted,
and the T1 timer restarted as described in the waiting
acknowledgement section (2.4.4.9) above. If the FRMR is sent N2
times without success, the link shall be reset.
2.4.6 Resetting Procedure
2.4.6.1
The resetting procedure is used to initialize both
directions of data flow after a nonrecoverable error has
occurred. This resetting procedure is used in the information-
transfer state of an AX.25 link only.
2.4.6.2
A DXE shall initiate a reset procedure whenever it receives
an unexpected UA response frame or an unsolicited response frame
with the F bit set to one. A DXE may also initiate the reset
procedure upon receipt of a FRMR frame. Alternatively, the DXE
may respond to a FRMR by terminating the connection with a DISC
frame.
2.4.6.3
A DXE shall reset the link by sending a SABM frame and
starting timer T1. Upon receiving a SABM frame from the DXE
previously connected to, the receiver of a SABM frame should send
a UA frame back at the earliest opportunity, set its send and
receive state variables, V(S) and V(R), to zero and stop T1
unless it has sent a SABM or DISC itself. If the UA is correctly
received by the initial DXE, it resets its send and receive state
variables, V(S) and V(R), and stops timer T1. Any busy condition
that previously existed will also be cleared.
If a DM response is received, the DXE will enter the
disconnected state and stop timer T1. If timer T1 runs out
before a UA or DM response frame is received, the SABM will be
retransmitted and timer T1 restarted. If timer T1 runs out N2
times, the DXE will enter the disconnected state, and any
previously existing link conditions will be cleared.
Other commands or responses received by the DXE before
completion of the reset procedure will be discarded.
2.4.6.4
One DXE may request that the other DXE reset the link by
sending a DM response frame. After the DM frame is sent, the
sending DXE will then enter the disconnected state.
2.4.7 List of System Defined Parameters
2.4.7.1 Timers
To maintain the integrity of the AX.25 level 2
connection, use of these timers is recommended.
2.4.7.1.1 Acknowledgement Timer T1
The first timer, T1, is used to make sure a DXE doesn't
wait forever for a response to a frame it sends. This timer
cannot be expressed in absolute time, since the time required to
send frames varies greatly with the signaling rate used at level
1. T1 should take at least twice the amount of time it would
take to send maximum length frame to the other DXE, and get the
proper response frame back from the other DXE. This would allow
time for the other DXE to do some processing before responding.
If level 2 repeaters are to be used, the value of T1
should be adjusted according to the number of repeaters the frame
is being transferred through.
2.4.7.1.2 Response Delay Timer T2
The second timer, T2, may be implemented by the DXE to
specify a maximum amount of delay to be introduced between the
time an I frame is received, and the time the resulting response
frame is sent. This delay may be introduced to allow a receiving
DXE to wait a short period of time to determine if there is more
than one frame being sent to it. If more frames are received,
the DXE can acknowledge them at once (up to seven), rather than
acknowledge each individual frame. The use of timer T2 is not
mandatory, but is recommended to improve channel efficiency.
Note that, on full-duplex channels, acknowledgements should not
be delayed beyond k/2 frames to achieve maximum throughput. The
k parameter is defined in 2.4.7.4, below.
2.4.7.1.3 Inactive Link Timer T3
The third timer, T3, is used whenever T1 isn't running to
maintain link integrity. It is recommended that whenever there
are no outstanding unacknowledged I frames or P-bit frames
(during the information-transfer state), a RR or RNR frame with
the P bit set to one be sent every T3 time units to query the
status of the other DXE. The period of T3 is locally defined,
and depends greatly on level 1 operation. T3 should be greater
than T1, and may be very large on channels of high integrity.
2.4.7.2 Maximum Number of Retries (N2)
The maximum number of retries is used in conjunction with
the T1 timer.
2.4.7.3 Maximum Number of Octets in an I Field (N1)
The maximum number of octets allowed in the I field will
be 256. There shall also be an integral number of octets.
2.4.7.4 Maximum Number of I Frames Outstanding (k)
The maximum number of outstanding I frames at a time is
seven.
This document was originally downloaded from the
TAPR archives and
FTP site,
as
http://www.tapr.org/tapr/ax25.doc.
HTML markup was done by
Bill Buthod, N5RRS. Last updated: 27 Dec 1996