AX25 Protocol


         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:



  M      L
  S      S 
  B      B
  yy01yyyy AX.25 layer 3 implemented.
  yy10yyyy AX.25 layer 3 implemented.
  11001100 Internet Protocol datagram layer 3 implemented.
  11001101 Address resolution protocol layer 3 implemented.
  11110000 No layer 3 implemented.
  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            01111110     7E
         A1       K     10010110     96
         A2       8     01110000     70
         A3       M     10011010     9A
         A4       M     10011010     9A
         A5       O     10011110     9E
         A6     space   01000000     40
         A7     SSID    11100000     E0
         A8       W     10101110     AE
         A9       B     10000100     84
         A10      4     01100100     68
         A11      J     10010100     94
         A12      F     10001100     8C
         A13      I     10010010     92
         A14    SSID    01100001     61
       Control    I     00111110     3E
         PID    none    11110000     F0
         FCS    part 1  XXXXXXXX     HH
         FCS    part 2  XXXXXXXX     HH
        Flag            01111110     7E

        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:

        1.  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.

        2.  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.

       3.   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.

        4.  The  bit marked "C" is used as  the  command/response 
            bit of an AX.25 frame, as outlined in 2.4.1.2 below.

        5.  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.

        6.  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:

   1.  The  top octet is the first octet sent, with bit  0  being 
       sent first and bit 7 sent last of each octet.

   2.  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.

   3.  The  "R"  bits are reserved in the same manner as  in  the 
       source and destination subfields.

   4.  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             01111110     7E
         A1        K     10010110     96
         A2        8     01110000     70
         A3        M     10011010     9A
         A4        M     10011010     9A
         A5        O     10011110     9E
         A6      space   01000000     40
         A7      SSID    11100000     E0
         A8        W     10101110     AE
         A9        B     10000100     84
         A10       4     01101000     68
         A11       J     10010100     94
         A12       F     10001100     8C
         A13       I     10010010     92
         A14     SSID    01100000     60
         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    11100011     E3
       Control     I     00111110     3F
         PID     none    11110000     F0
         FCS     part 1  XXXXXXXX     HH
         FCS     part 2  XXXXXXXX     HH
        Flag             01111110     7E

        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      Control-Field Bits
                  Type         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:

        1.  Bit 0 is the first bit sent and bit 7 is the last bit 
            sent of the control field.

        2.  N(S) is the send sequence number (bit 1 is the LSB).

        3.  N(R)  is  the receive sequence number (bit 5  is  the 
            LSB).

        4.  The  "S" bits are the supervisory function bits,  and 
            their encoding is discussed in 2.3.4.2.

        5.  The  "M" bits are the unnumbered frame modifier  bits 
            and their encoding is discussed in 2.3.4.3.

        6.  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 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:

   1.  to  indicate  that the sender of the RR is  now  able  to 
       receive more I frames.

   2.  to  acknowledge  properly  received I frames  up  to,  and 
       including N(R)-1, and

   3.  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  Cmd    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:

 1.  The  reception of an invalid or not implemented  command  or 
     response frame.

 2.  The reception of an I frame whose information field  exceeds 
     the agreed-upon length.  (See 2.4.7.3, below.)

 3.  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.

 4.  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.

      5.  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.

 6.  The reception of an unexpected UA or DM response frame.  Bit 
     W should be set to one.

 7.  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   V(S)  0  Rejected Frame 
                                   R            Control Field

             Fig. 9 -- FRMR frame information field



  Where:

  1.  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.

  2.  V(S)  is  the  current send state variable  of  the  device 
      reporting the rejection (bit 9 is the low bit).

  3.  The  CR bit is set to zero to indicate the  rejected  frame 
      was a command, or one if it was a response.

  4.  V(R)  is the current receive state variable of  the  device 
      reporting rejection (bit 13 is the low bit).

  5.  If W is set to 1, the control field received was invalid or 
      not implemented.

  6.  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.

  7.  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.

  8.  If  A is set to 1, the control field received and  returned 
      in bits 1 to 8 contained an invalid N(R).

  9.  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:
        
 1.  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.

 2.  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:

 1.  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.

 2.  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).

 3.  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.

 4.  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.


State tables:

Zustandstabellen, linker Teil
=========================================================================
----------------------------------------------------------------------
|             Block |I mit |I ohne  |RR mit |RR ohne|REJ mit|REJ ohne|
|   Zustand         | Poll | Poll   | Poll  | Poll  | Poll  |  Poll  |
|---------------------------------------------------------------------
|S1 Frei            | DM   |        | DM    |       | DM    |        |
|---------------------------------------------------------------------
|S2 Verb.-Aufbau    |      |        |       |       |       |        |
|---------------------------------------------------------------------
|S3 Blockrueckw.    | FRMR |        | FRMR  |       | FRMR  |        |
|---------------------------------------------------------------------
|S4 Verb.-Abbau     | DM,S1|        | DM,S1 |       | DM,S1 |        |
|---------------------------------------------------------------------
|S5 Info.-Uebertrag.| RR   | I/RR *1| RR    | I/- *2| RR    | I      |
|---------------------------------------------------------------------
|S6 REJ ausgesandt  | RR,S5| I/RR,S5| RR    | I/-   | RR    | I      |
|---------------------------------------------------------------------
|S7 Warten auf Final| RR   | I/RR   | RR    | I/-   | RR    | I      |
|---------------------------------------------------------------------
|S8 nicht bereit    | RNR  | RNR    | RNR   | I/-   | RNR   | I      |
|---------------------------------------------------------------------
|S9 Gegenstelle     | RR   | RR     | RR,S5 | I/-,S5| RR,S5 | I,S5   |
| nicht bereit      |      |        |       |       |       |        |
|---------------------------------------------------------------------
|S10 beide Seiten   | RNR  | RNR    |RNR,S8 | I/-,S8| RNR,S8| I,S8   |
| nicht bereit      |      |        |       |       |       |        |
|---------------------------------------------------------------------
|S11 nicht bereit u.| RNR  | RNR    | RNR   | I/-   | RNR   | I      |
| Warten auf Final  |      |        |       |       |       |        |
|---------------------------------------------------------------------
|S12 Gegenstelle    | RR   | RR     | RR,S7 | I/-,S7| RR,S7 | I,S7   |
| nicht bereit u.   |      |        |       |       |       |        |
| Warten auf Final  |      |        |       |       |       |        |
|---------------------------------------------------------------------
|S13 beide Seiten   | RNR  | RNR    | RNR,  | I/-,  | RNR,  | I,S11  |
| nicht bereit u.   |      |        |  S11  |   S11 |   S11 |        |
| Warten auf Final  |      |        |       |       |       |        |
|---------------------------------------------------------------------
|S14 REJ ausgesandt | RNR  | RNR    | RNR   | I/-   | RNR   | I      |
| und nicht bereit  |      |        |       |       |       |        |
|---------------------------------------------------------------------
|S15 REJ ausgesandt | RR,S9| RR,S9  | RR,S6 | I/-,S6| RR,S6 | I,S6   |
| u. Gegenstelle    |      |        |       |       |       |        |
| nicht bereit      |      |        |       |       |       |        |
|---------------------------------------------------------------------
|S16 REJ ausgesandt | RNR  | RNR    | RNR,  | I/-,  | RNR,  | I,S14  |
| u. beide Seiten   |      |        |  S14  |   S14 |   S14 |        |
| nicht bereit      |      |        |       |       |       |        |
----------------------------------------------------------------------
  *1 Falls keine weiteren Informationen vorliegen, soll, evtl. nach Ab
     Zeitgebers T2, ein RR ausgesandt werden.
  *2 Falls keine weiteren Informationen vorliegen, wird nichts ausgesa
  *3 DM,S1, wenn die Verbindung nicht akzeptiert wird.
  *4 UA, wenn der DISC-Block ohne Poll empfangen wurde.

  Abb. A1 -- Level 2 Zustandstabelle fuer empfangene Kommandoblocks

----------------------------------------------------------------------
|             Block | RR mit | RR ohne| REJ mit | REJ ohne| RNR mit |
|   Zustand         | Final  | Final  | Final   | Final   | Final   |
|---------------------------------------------------------------------
|S1 Frei            |        |        |         |         |         |
|---------------------------------------------------------------------
|S2 Verb.-Aufbau    |        |        |         |         |         |
|---------------------------------------------------------------------
|S3 Blockrueckw.    |        |        |         |         |         |
|---------------------------------------------------------------------
|S4 Verb.-Abbau     |        |        |         |         |         |
|---------------------------------------------------------------------
|S5 Info.-Uebertrag.| I/-  *2| I/-  *2| I       | I       | S9      |
|---------------------------------------------------------------------
|S6 REJ ausgesandt  | I/-    | I/-    | I       | I       | S15     |
|---------------------------------------------------------------------
|S7 Warten auf Final| I/-,S5 | I/-    | I,S5    | I       | S9      |
|---------------------------------------------------------------------
|S8 nicht bereit    | I/-    | I/-    | I       | I       | S10     |
|---------------------------------------------------------------------
|S9 Gegenstelle     | I/-,S5 | I/-,S5 | I,S5    | I,S5    |         |
| nicht bereit      |        |        |         |         |         |
|---------------------------------------------------------------------
|S10 beide Seiten   | I/-,S8 | I/-,S8 | I,S8    | I,S8    |         |
| nicht bereit      |        |        |         |         |         |
|---------------------------------------------------------------------
|S11 nicht bereit u.| I/-,S8 | I/-    | I,S8    | I       | S10     |
| Warten auf Final  |        |        |         |         |         |
|---------------------------------------------------------------------
|S12 Gegenstelle    | I/-,S5 | I/-,S7 | I,S5    | I,S7    |         |
| nicht bereit u.   |        |        |         |         |         |
| Warten auf Final  |        |        |         |         |         |
|---------------------------------------------------------------------
|S13 beide Seiten   | I/-,S8 | I/-,S11| I,S8    | I,S11   |         |
| nicht bereit u.   |        |        |         |         |         |
| Warten auf Final  |        |        |         |         |         |
|---------------------------------------------------------------------
|S14 REJ ausgesandt | I/-    | I/-    | I       | I       | S16     |
| und nicht bereit  |        |        |         |         |         |
|---------------------------------------------------------------------
|S15 REJ ausgesandt | I/-,S6 | I/-,S6 | I,S6    | I,S6    |         |
| u. Gegenstelle    |        |        |         |         |         |
| nicht bereit      |        |        |         |         |         |
|---------------------------------------------------------------------
|S16 REJ ausgesandt | I/-,S14| I/-,S14| I,S14   | I,S14   |         |
| u. beide Seiten   |        |        |         |         |         |
| nicht bereit      |        |        |         |         |         |
----------------------------------------------------------------------
  *2 Falls keine weiteren Informationen vorliegen wird nichts ausgesan

  Abb. A2 -- Level 2 Zustandstabelle fuer empfangene Antwortblocks

----------------------------------------------------------------------
|             Block | lokales | lokales | Station | Station | T1
|   Zus             | Start   | Stop    | nicht   | wieder  | laeuft
|   Zustand         | Kommando| Kommando| bereit  | bereit  | ab
|---------------------------------------------------------------------
|S1 Frei            | SABM,S2 |         |         |         |
|---------------------------------------------------------------------
|S2 Verb.-Aufbau    |         | DISC,S4 |         |         | SABM
|---------------------------------------------------------------------
|S3 Blockrueckw.    | SABM,S2 | DISC,S4 |         |         | FRMR
|---------------------------------------------------------------------
|S4 Verb.-Abbau     | SABM,S2 |         |         |         | DISC
|---------------------------------------------------------------------
|S5 Info.-Uebertrag.| SABM,S2 | DISC,S4 | RNR,S8  |         | RRc,S7
|---------------------------------------------------------------------
|S6 REJ ausgesandt  | SABM,S2 | DISC,S4 | RNR,S14 |         | RRc,S7
|---------------------------------------------------------------------
|S7 Warten auf Final| SABM,S2 | DISC,S4 | RNR,S11 |         | RRc
|---------------------------------------------------------------------
|S8 nicht bereit    | SABM,S2 | DISC,S4 |         | RR,S5   | RNRc,S11
|---------------------------------------------------------------------
|S9 Gegenstelle     | SABM,S2 | DISC,S4 | RNR,S10 |         | RRc,S12
| nicht bereit      |         |         |         |         |
|---------------------------------------------------------------------
|S10 beide Seiten   | SABM,S2 | DISC,S4 |         | RR,S9   | RNRc,S13
| nicht bereit      |         |         |         |         |
|---------------------------------------------------------------------
|S11 nicht bereit u.| SABM,S2 | DISC,S4 |         | RR,S7   | RNRc
| Warten auf Final  |         |         |         |         |
|---------------------------------------------------------------------
|S12 Gegenstelle    | SABM,S2 | DISC,S4 | RNR,S13 |         | RRc
| nicht bereit u.   |         |         |         |         |
| Warten auf Final  |         |         |         |         |
|---------------------------------------------------------------------
|S13 beide Seiten   | SABM,S2 | DISC,S4 |         | RR,S12  | RNRc
| nicht bereit u.   |         |         |         |         |
| Warten auf Final  |         |         |         |         |
|---------------------------------------------------------------------
|S14 REJ ausgesandt | SABM,S2 | DISC,S4 |         | RR,S6   | RNRc,S11
| und nicht bereit  |         |         |         |         |
|---------------------------------------------------------------------
|S15 REJ ausgesandt | SABM,S2 | DISC,S4 | RNR,S16 |         | RRc,S12
| u. Gegenstelle    |         |         |         |         |
| nicht bereit      |         |         |         |         |
|---------------------------------------------------------------------
|S16 REJ ausgesandt | SABM,S2 | DISC,S4 |         | RR,S15  | RNRc,S11
| u. beide Seiten   |         |         |         |         |
| nicht bereit      |         |         |         |         |
----------------------------------------------------------------------
  S-Blocks die XXXc gekennzeichnet sind, werden als Kommando, alle and
  Antwort ausgesandt.

  Abb. A3 -- Level 2 Zustandstabelle fuer sonstige Ereignisse
=======================================================================
Zustandstabellen, rechter Teil
=======================================================================

--------------------------------------
RNR mit  | RNR ohne| SABM    | DISC  |
 Poll    | Poll    |         |       |
-------------------------------------|
 DM      |         | UA,S5 *3| DM  *4|
-------------------------------------|
         |         | UA,S5 *3| DM,S1 |
-------------------------------------|
 FRMR    |         | UA,S5 *3| UA,S1 |
-------------------------------------|
 DM,S1   |         | DM,S1   | UA,S1 |
-------------------------------------|
 RR,S9   | S9      | UA      | UA,S1 |
-------------------------------------|
 RR,S15  | S15     | UA,S5   | UA,S1 |
-------------------------------------|
 RR,S12  | S12     | UA,S5   | UA,S1 |
-------------------------------------|
 RNR,S10 | S10     | UA      | UA,S1 |
-------------------------------------|
 RR      |         | UA,S5   | UA,S1 |
         |         |         |       |
-------------------------------------|
 RNR     |         | UA,S8   | UA,S1 |
         |         |         |       |
-------------------------------------|
 RNR,S13 | S13     | UA,S8   | UA,S1 |
         |         |         |       |
-------------------------------------|
 RR      |         | UA,S5   | UA,S1 |
         |         |         |       |
         |         |         |       |
-------------------------------------|
 RNR     |         | UA,S8   | UA,S1 |
         |         |         |       |
         |         |         |       |
-------------------------------------|
 RNR,S16 | S16     | UA,S8   | UA,S1 |
         |         |         |       |
-------------------------------------|
 RR      |         | UA,S5   | UA,S1 |
         |         |         |       |
         |         |         |       |
-------------------------------------|
 RNR     |         | UA,S5   | UA,S1 |
         |         |         |       |
         |         |         |       |
--------------------------------------
lauf des

ndt.

----------------------------------------
RNR ohne | UA      | DM      | FRMR    |
Final    |         |         |         |
---------------------------------------|
         |         |         |         |
---------------------------------------|
         | S5      | S1      |         |
---------------------------------------|
         |         |         | SABM,S2 |
---------------------------------------|
         | S1      | S1      |         |
---------------------------------------|
S9       |         | SABM,S2 | SABM,S2 |
---------------------------------------|
S15      | SABM,S2 | SABM,S2 | SABM,S2 |
---------------------------------------|
S12      | SABM,S2 | SABM,S2 | SABM,S2 |
---------------------------------------|
S10      | SABM,S2 | SABM,S2 | SABM,S2 |
---------------------------------------|
         | SABM,S2 | SABM,S2 | SABM,S2 |
         |         |         |         |
---------------------------------------|
         | SABM,S2 | SABM,S2 | SABM,S2 |
         |         |         |         |
---------------------------------------|
S13      | SABM,S2 | SABM,S2 | SABM,S2 |
         |         |         |         |
---------------------------------------|
         | SABM,S2 | SABM,S2 | SABM,S2 |
         |         |         |         |
         |         |         |         |
---------------------------------------|
         | SABM,S2 | SABM,S2 | SABM,S2 |
         |         |         |         |
         |         |         |         |
---------------------------------------|
S16      | SABM,S2 | SABM,S2 | SABM,S2 |
         |         |         |         |
---------------------------------------|
         | SABM,S2 | SABM,S2 | SABM,S2 |
         |         |         |         |
         |         |         |         |
---------------------------------------|
         | SABM,S2 | SABM,S2 | SABM,S2 |
         |         |         |         |
         |         |         |         |
----------------------------------------
dt.



---------------------------------------------------
| T3     | N2 wird  | falsches| falsches| unbe-   |
| laeuft | ueber-   | N(S)    | N(R)    | kannter |
| ab     | schritten|empfangen|empfangen| Blocktyp|
--------------------------------------------------|
|        |          |         |         |         |
--------------------------------------------------|
| SABM   | S1       |         |         |         |
--------------------------------------------------|
| FRMR   | SABM,S2  |         |         |         |
--------------------------------------------------|
| DISC   | S1       |         |         |         |
--------------------------------------------------|
| RRc,S7 |          | REJ,S6  | FRMR,S3 | FRMR,S3 |
--------------------------------------------------|
| RRc,S7 | SABM,S2  |         | FRMR,S3 | FRMR,S3 |
--------------------------------------------------|
|        | SABM,S2  |         | FRMR,S3 | FRMR,S3 |
--------------------------------------------------|
|RNRc,S11|          | RNR     | FRMR,S3 | FRMR,S3 |
--------------------------------------------------|
| RRc,S12|          | REJ,S15 | FRMR,S3 | FRMR,S3 |
|        |          |         |         |         |
--------------------------------------------------|
|RNRc,S13|          | RNR     | FRMR,S3 | FRMR,S3 |
|        |          |         |         |         |
--------------------------------------------------|
|        | SABM,S2  |         | FRMR,S3 | FRMR,S3 |
|        |          |         |         |         |
--------------------------------------------------|
|        | SABM,S2  |         | FRMR,S3 | FRMR,S3 |
|        |          |         |         |         |
|        |          |         |         |         |
--------------------------------------------------|
|        | SABM,S2  |         | FRMR,S3 | FRMR,S3 |
|        |          |         |         |         |
|        |          |         |         |         |
--------------------------------------------------|
|RNRc,S11|          | RNR     | FRMR,S3 | FRMR,S3 |
|        |          |         |         |         |
--------------------------------------------------|
| RRc,S12|          |         | FRMR,S3 | FRMR,S3 |
|        |          |         |         |         |
|        |          |         |         |         |
--------------------------------------------------|
|RNRc,S11|          |         | FRMR,S3 | FRMR,S3 |
|        |          |         |         |         |
|        |          |         |         |         |
---------------------------------------------------
eren als

Pr4Win by  Bernd M. Stroj (OE8DJK), last updated on May 7, 1998.