<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY Cust18 SYSTEM
  "http://xml2rfc.ietf.org/public/rfc/bibxml-doi/reference.DOI.10.1016/j.comcom.2018.05.016.xml?anchor=Cust18">
<!ENTITY RFC1226 SYSTEM
  "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1226.xml">
<!ENTITY RFC2119 SYSTEM
  "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2409 SYSTEM
  "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2409.xml">
<!ENTITY RFC2474 SYSTEM
  "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2474.xml">
<!ENTITY RFC2597 SYSTEM
  "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2597.xml">
<!ENTITY RFC4301 SYSTEM
  "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4301.xml">
<!ENTITY RFC4302 SYSTEM
  "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4302.xml">
<!ENTITY RFC4303 SYSTEM
  "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4303.xml">
<!ENTITY RFC5996 SYSTEM
  "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5996.xml">
]>

<rfc obsoletes="1226" docName='draft-learmonth-rfc1226-bis-02' ipr="trust200902" submissionType="IRTF" category="exp" xml:lang="en"><!-- xmlns:xi="http://www.w3.org/2001/XInclude"-->
<front>

<title abbrev='AX.25 over IP'>
Internet Protocol Encapsulation of AX.25 Frames
</title>

<author initials="I. R." surname="Learmonth" fullname="Iain R. Learmonth">
  <organization>HamBSD</organization>
  <address>
    <postal>
      <street></street>
    </postal>
    <email>irl@hambsd.org</email>
  </address>
</author>

<date />

<area></area>
<workgroup></workgroup>
<keyword>amateur radio</keyword>
<keyword>ax.25</keyword>
<keyword>encapsulation</keyword>

<abstract>
<t>This document describes a method for the encapsulation of AX.25
Link Access Protocol for Amateur Packet Radio frames within IP
version 4 and version 6 packets. Obsoletes RFC1226.
</t>
</abstract>

<note title="Note">
<t>Comments are solicited and should be addressed to the author(s).</t>
<t>The sources for this draft are at:</t>
<t>https://github.com/irl/draft-rfc1226-bis</t>
</note>

</front>

<middle>
<section anchor="introduction" title="Introduction">
        <t>
                This document describes a method for the encapsulation of
                AX.25 Link Access Protocol for Amateur Packet Radio
                <xref target="AX.25"/>) frames within IPv4 and
                IPv6 packets. It obsoletes
                <xref target="RFC1226" />.
	</t>
        <t>
                AX.25 is a data link layer protocol originally derived from
                layer 2 of the X.25 protocol suite and designed for use by
                amateur radio operators. It is used extensively by amateur
                packet radio networks worldwide.
        </t>
        <t>
                In addition to specifying how packets should be encapsulated, it
                gives recommendations for DiffServ codepoint marking of the
                encapsulating headers based on the AX.25 frame content and
                provides security considerations for the use of this
                encapsulation method.
        </t>
</section>

<section title="Terminology">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"
in this document are to be interpreted as described in
<xref target="RFC2119"/>.</t>
</section>

<section anchor="ip-encap" title="Internet Protocol Encapsulation">
<t>
        Each AX.25 frame is encapsulated in one IP version 4 or version 6
        datagram using protocol number 93 as assigned in the Assigned Internet Protocol Numbers registry <xref target="protocol-numbers"/>.
        For AX.25 version 2.0, the maximum frame size expected is 330 bytes and
        implementations MUST be prepared to handle frames of this size.
        Higher frame sizes can be negotiated by AX.25 version 2.2 and so this
	is a minimum requirement and not a limit.
</t>
<t>
        HDLC framing elements (flags and zero-stuffing) are omitted, as the IP
        datagram
        adequately delimits the beginning and end of each AX.25 frame. The
        CRC-16-CCITT frame check sequence (normally generated by the HDLC
        transmission hardware) is included trailing the information field.
	In all other respects, AX.25 frames are encapsulated unaltered.
</t>

<section anchor="priority" title="Priority Frames">
<t>
        In normal operation, the DiffServ codepoint field <xref target="RFC2474"/> in the encapsulating
        IP header SHOULD be set to best effort (BE).
	The exception to this is "priority frames" as specified for AX.25
	version 2.2, including acknowledgement and digipeat frames, which SHOULD
        have the DiffServ codepoint set to AF21 <xref target="RFC2597"/>. A slot is reserved on the radio
        channel for the transmission of these frames and the use of this
        codepoint will permit the frames to arrive promptly at the station for
        transmission.
</t>
<t>
        For the avoidance of doubt: on decapsulation the AX.25 frame MUST NOT be
        modified regardless of the DiffServ codepoint on the received
        encapsulating IP header. The receiver MUST NOT use the DiffServ
	codepoint to infer anything about the nature of the encapsulated packet.
	It has been shown that while the AF21 codepoint may be remarked while
	crossing administrative boundaries, it is unlikely that priority
	inversion will occur due to remarking where such remarking occurs
	<xref target="Cust18"/>.
</t>
</section>

<section anchor="aprs" title="Automatic Packet Reporting System">
<t>
        Automatic Packet Reporting System
        <xref target="APRS" />
        is an amateur radio-based system for real time digital communications for local situational awareness. APRS uses AX.25 frames for addressing, and additionally assigns special meaning to some of the reserved bits of an AX.25 frame header.
</t>
<t>
        As a special case, when used with the Automatic Packet Reporting System
        <xref target="APRS" />, priority frames will not occur. If
	a tunnel is configured as carrying APRS data, the DiffServ codepoint
        SHOULD by default be set to AF11 <xref target="RFC2597"/>. Where the "Precedence Bit"
        <xref target="RR-bits" />
        is set (i.e. it is zero) in an APRS packet, the DiffServ codepoint should be
        set to BE. Where the "Operator Present Bit"
        <xref target="RR-bits" />
	is set (i.e. it is zero),
        the DiffServ codepoint MAY be set to AF21 <xref target="RFC2597"/>.
</t>
<t>
        Again, for the avoidance of doubt: on decapsulation the AX.25 frame MUST
        NOT be modified regardless of the DiffServ codepoint on the received
        encapsulating IP header. The receiver MUST NOT use the DiffServ
	codepoint to infer anything about the nature of the encapsulated packet.
	It has been shown that while AF codepoints may be remarked while
	crossing administrative boundaries, it is unlikely that priority
	inversion will occur, either with the BE traffic or between AF PHBs
	due to remarking where such remarking occurs <xref target="Cust18"/>.
</t>
</section>
</section>

<section anchor="iana-considerations" title="IANA Considerations">
<t>
	Protocol number 93 is assigned in <xref target="protocol-numbers"></xref> and
	should be updated to point to this document.
</t>
</section>

<section anchor="security-considerations" title="Security Considerations">
        <t>
                With the exception of control signals exchanged between earth
                command stations and space stations in the amateur-satellite
                service, amateur radio transmissions cannot be encoded for the
                purpose of obscuring their meaning. In essence, this means that
                cryptography that requires the use of secrets to decipher a
                message cannot be used where the possibility exists that a
                packet will be transmitted by an amateur radio station.
        </t>
        <t>
                The CRC-16-CCITT provides for an integrity check but does not
                guarantee the authenticity of the packet. In many jurisdictions
                it is a requirement for amateur radio stations that are Internet
                connected that they verify that packets for transmission have
                originated from licensed radio amateurs. In order to provide
                this guarantee, IPSec
                <xref target="RFC4301"/>
                MUST be employed to provide authentication of packets. A
                transport mode SA SHOULD be negotiated between the IP
                endpoints to use IP Authentication Headers (AH)
                <xref target="RFC4302"/>
                with the traffic selector matching packets with IP protocol
                number 93. In cases where NAT traversal is required, a tunnel
                mode SA MAY be used instead of transport. In cases where traffic
                is guaranteed to not pass via an amateur radio link, ESP
                <xref target="RFC4303"/>
                MAY be used instead of AH. ESP MUST NOT be used where there is
		the possibility that the encapsulating packet will be
		transmitted via an amateur radio link.
	</t>
        <t>
                When transmitted by an amateur radio station, many propagation
                modes will permit wide reception of a packet. As such, receivers
                MUST implement anti-replay protection by verifying received
                sequence numbers <xref target="RFC4302"/><xref target="RFC4303"/>.
                The size of the anti-replay window may need to be scaled to
                account not only for the speed of the link, but also for packet
                loss that may occur on amateur radio links. Following extended
                packet loss a sender may have advanced the sequence number
                beyond the window size allowed. Dead peer detection
                <xref target="RFC5996"/>
                can be used to renegotiate SAs in this case and so SHOULD be
                enabled for any SA expected to traverse an amateur radio
                link that is expected to have varying propagation
                charachteristics.
        </t>
	<t>
		Given the need for anti-replay protection, it is not possible
		to manually key the SAs. An automatic keying protocol such as
		IKEv1 <xref target="RFC2409"/> or IKEv2 <xref target="RFC5996"/>
		MUST be used to establish SAs. The exact details
		of the automatic keying protocol to use and its paramaters are
		not specified in this document.
	</t>
</section>

<section anchor="acknowledgements" title="Acknowledgements">
<t>
	The author would like to acknowledge the work of Brian Kantor
	who authored the original specification <xref target="RFC1226"></xref>
	that this document updates.
</t>
</section>

</middle>

<back>
<references title="Normative References">
&RFC2119;
&RFC2474;
&RFC2597;
&RFC4301;
&RFC4302;
&RFC4303;
<reference anchor="AX.25" target="https://www.tapr.org/pdf/AX25.2.2.pdf">
<front>
<title>AX.25 Link Access Protocol for Amateur Packet Radio Version 2.2</title>
<author><organization>Tucson Amateur Packet Radio Corporation</organization></author>
<date year="1998" month="July" />
</front>
</reference>
<reference anchor="protocol-numbers" target="http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml">
<front>
<title>Assigned Internet Protocol Numbers</title>
<author><organization>IANA</organization></author>
<date></date>
</front>
</reference>
<reference anchor="RR-bits" target="http://aprs.org/aprs12/RR-bits.txt">
<front>
<title>APRS Future Use of AX.25 SSID RR Bits</title>
<author initials="B." surname="Bruninga"><organization /></author>
<date year="2012" month="December" day="5" />
</front>
</reference>
</references>

<references title="Informative References">
&Cust18;
&RFC1226;
&RFC2409;
&RFC5996;
<reference anchor="APRS" target="http://www.aprs.org/doc/APRS101.PDF">
<front>
<title>APRS Protocol Reference</title>
<author initials="I." surname="Wade" role="editor"><organization>APRS Working Group</organization></author>
<date year="2000" month="August"/>
</front>
</reference>
</references>

</back>

</rfc>
