RFC 2176

IPv4 over MAPOS Version 1

πŸ“… published June 1997, from ietf

IPv4 over MAPOS Version 1 ✨

RFC 2176 πŸŽ€ is called IPv4 over MAPOS Version 1. It was written by Ken Murakami and Mitsuru Maruyama, both from NTT Laboratories, for the Network Working Group. It's Informational, dated June 1997. The header doesn't list any obsoletes or updates.

Status of This Memo πŸ“

This memo is here to share info with the Internet community πŸ’œ It does not specify an Internet standard of any kind, and distribution of it is totally unlimited 🌈

Authors' Note πŸ’Œ

This memo documents how to run IPv4 on MAPOS version 1 over SONET/SDH πŸ¦‹ Real talk: it is NOT the product of an IETF working group, and it's not a standards track document either. It hasn't necessarily gotten the big, in-depth community review that standards track docs get πŸ™ˆ

Abstract πŸ”₯

Okay, so the gist: this doc describes how IPv4 gets sent over Multiple Access Over SONET/SDH (MAPOS) version 1. MAPOS is a link layer protocol that gives you multiple access over SONET/SDH links, and IP runs right on top of it πŸ’… The doc explains IP datagram encapsulation in an HDLC frame of MAPOS, plus the Address Resolution Protocol (ARP) 🧚

1. Introduction 🌸

Multiple Access Protocol over SONET/SDH (MAPOS) [1] is a high-speed link-layer protocol, and it gives you multiple access capability over SONET/SDH. Its frame format is based on the HDLC-like framing [2] for PPP. There's a component called "Frame Switch" [1] that lets multiple nodes connect in a star topology to make a LAN. Using long haul SONET/SDH links, the nodes on a "SONET-LAN" can span a wide geographical area 🌍 IP datagrams [3] get transmitted in MAPOS HDLC frames [1] ✨

This doc describes how IP datagrams travel over MAPOS version 1 [1]. It covers IP datagram encapsulation in an HDLC frame of MAPOS, and ARP (Address Resolution Protocol) for mapping between an IP address and an HDLC address πŸ¦‹

2. Frame Format for Encapsulating IP Datagrams πŸŽ€

An IP datagram gets transmitted in a MAPOS HDLC frame. The protocol field of the frame must contain the value 0x0021 (hexadecimal), as defined by the "MAPOS Version 1 Assigned Numbers" [4]. The information field carries the IP datagram πŸ“¦

The information field may be one to 65,280 octets in length, and the MTU (Maximum Transmission Unit) of MAPOS is 65,280 octets. A large MTU can cut down on IP header processing overhead, but it may cause fragmentation anywhere along the path from source to destination, and that can lead to performance degradation 😬 To cope with the issue, Path MTU discovery [5] may be used πŸ›£οΈ

3. Address Mapping πŸ—ΊοΈ

This section explains MAPOS ARP and the mapping of special addresses πŸ’–

3.1 ARP cache 🧠

Each node on a MAPOS network maintains an "ARP cache" that maps destination IP addresses to their corresponding 8-bit HDLC addresses. Entries get added to this cache either manually or by the Address Resolution Protocol described below. Entries get removed manually, by the UNARP mechanism, or by the ARP cache validation mechanism. An implementation must provide a mechanism for manually adding or removing arbitrary ARP cache entries 🫢

3.2 Address Resolution Protocol (ARP) πŸ”

This subsection describes the MAPOS ARP protocol and its packet format πŸ’…

3.2.1 Overview

MAPOS ARP is pretty similar to ethernet's ARP πŸ’œ Before sending an IP datagram, the node has to know the destination HDLC address that matches the destination IP address. When its ARP cache doesn't have that entry, it uses ARP to translate the IP address to the HDLC address. So it broadcasts an ARP request containing the destination IP address. The node that has that IP address sends back an ARP reply containing its HDLC address, and the returned HDLC address gets stored in the ARP cache ✨

3.2.2 ARP Frame Format πŸ“¦

The protocol field for an ARP frame must contain 0xFE01 (hexadecimal), as defined by the "MAPOS Version 1 Assigned Numbers" [4]. The information field carries the ARP packet, which looks like this πŸ‘€

        +-------------------------+------------------------+
        |  Hardware Address Space | Protocol Address Space |
        |       (25:MAPOS)        |     (2048 in Dec)      |
        |    16 bits              |   16 bits              |
        +------------+------------+------------------------+
        | Hard Addr  | Proto Addr |   Operation Code       |
        | Length (4) | Length (4) |(1:Request 2:Response)  |
        |   8 bits   |   8 bits   |         16 bits        |
        +------------+------------+------------------------+
        |    Sender HDLC Address        32 bits            |
        +--------------------------------------------------+
        |    Sender IP Address          32 bits            |
        +--------------------------------------------------+
        |    Target HDLC Address        32 bits            |
        +--------------------------------------------------+
        |    Target IP Address          32 bits            |
        +--------------------------------------------------+

Figure 5 ARP packet format

Now let's go through each field 🧩

Hardware Address Space (16 bits) The hardware address space for MAPOS ARP is 25 in Decimal, as assigned by IANA [6].

Protocol Address Space (16 bits) The protocol address space for IP is 2048 in Decimal.

Hardware Address Length (8 bits) The hardware address length is 4.

Protocol Address Length (8 bits) The protocol address length for IP is 4.

Operation Code (16 bits) The operation code is 1 for request and 2 for response.

Sender hardware (HDLC) Address (32 bits) This holds the sender's HDLC address in an ARP request, and the target HDLC address in an ARP response. The 8-bit HDLC address goes in the least significant place of the 32-bit field. The remaining bits should be zero.

Sender Protocol (IP) Address (32 bits) This holds the sender's IP address in an ARP request, and the target IP address in an ARP response.

Target hardware (HDLC) Address (32 bits) This holds an unknown target HDLC address (all zeros) in an ARP request, and the sender's HDLC address in an ARP response. The 8-bit HDLC address goes in the least significant place of the 32-bit field. The remaining bits should be zero.

Target Protocol (IP) Address (32 bits) This holds the target IP address in an ARP request, and the sender's IP address in an ARP response.

3.3 UNARP 🧹

An implementation MUST provide an UNARP mechanism to flush obsolete ARP cache entries. It's similar to the ARP extension described in [7]. When a node detects that its port came up, it MUST broadcast an UNARP packet. This forces every other node to clear the obsolete ARP entry that was created by the node previously connected to the switch port πŸ™Œ An UNARP is an ARP clear request with these values:

  Hardware Address Space          :       25
  Protocol Address Space          :       2048
  Hardware Address Length         :       4
  Protocol Address Length         :       4
  Operation Code                  :       23 (MAPOS-UNARP)
  Sender hardware (HDLC) Address  :       HDLC address of the node
  Sender Protocol (IP) Address    :       IP address of the node
  Target hardware (HDLC) Address  :       all 1
  Target Protocol (IP) Address    :       255.255.255.255 (broadcast)

Hardware Address Space (16 bits) The hardware address space for MAPOS ARP is 25 in Decimal, as assigned by IANA [6].

Operation Code (16 bits) The operation code is 23 for MAPOS-UNARP in Decimal, as assigned by IANA [6].

The node MUST send three UNARP packets at 30 seconds intervals. The receiving node of the packet MUST clear the ARP cache entry associated with the Sender Protocol (IP) Address, if and only if the corresponding Hardware (HDLC) Address is not equal to the one contained in the UNARP packet. In other words, if both the Sender Hardware (HDLC) Address and the Sender Protocol (IP) Address match those of the cached entry, the entry is left unchanged 🀏

3.4 ARP Cache Validation ⏰

An implementation MUST provide a mechanism to remove out-of-date cache entries, and it SHOULD provide options to configure the timeout value [8]. One approach is to periodically time out the cache entries, even if they're in use. This approach involves ARP cache timeouts in the order of a minute or less ⏳

Furthermore, when the link is lost on an interface, all ARP cache entries associated with that interface MUST be removed immediately. Causes for link loss include conditions such as loss of carrier and out-of-synchronization πŸ’€

3.5 IP Broadcast and multicast πŸ“‘

In broadcast and multicast frames, the most significant bit of the HDLC address must be 1 [1]. The least significant bit must always be 1 too, to indicate the end of the field [1] 🌈

For IP broadcast, the remaining six bits of the HDLC address must be all 1s. That is, it should be mapped to the HDLC broadcast address 0xFF (hexadecimal) πŸ“

For IP multicast, the remaining six bits must contain the lowest-order six bits of the IP multicast group address. It resembles the IP multicast extension for ethernet described in [9]. The exceptions are when these six bits are either all zeros or all ones. In those cases, they should be altered to the bit sequence 111110 ✨

4. Security Considerations 🚨

Serious moment, bestie πŸ₯Ί Security issues are not discussed in this memo. Full stop. Please don't assume this doc covers security, because it doesn't πŸ™ˆ

References πŸ“š

  • [1] Murakami, K. and M. Maruyama, "MAPOS - Multiple Access Protocol over SONET/SDH, Version 1," RFC-2171, June 1997.
  • [2] Simpson, W., editor, "PPP in HDLC-like Framing," RFC-1662, July 1994.
  • [3] Postel, J., "Internet Protocol (IP)," RFC-791, September 1981.
  • [4] Maruyama, M. and K. Murakami, "MAPOS Version 1 Assigned Numbers," RFC-2172, June 1997.
  • [5] Mogul, J. and S. Deering, "Path MTU Discovery," RFC-1191, Nov. 1990.
  • [6] IANA, "IANA-Assignments", http://www.iana.org/iana/assignments.html
  • [7] Malkin, G., "ARP Extension - UNARP," RFC-1868, November 1995.
  • [8] Braden, R., "Requirements for Internet Hosts - Communication Layers," RFC-1122, October 1989.
  • [9] Deering, S., "Host Extensions for IP Multicasting," RFC-1112, August 1989.

Acknowledgements 🫢

The authors want to thank John P. Mullaney, Clark Bremer, Masayuki Kobayashi, Paul Francis, Toshiaki Yoshida, and Takahiro Sajima for their contributions and thoughtful suggestions πŸ’œ

Author's Address 🏠

Ken Murakami
NTT Software Laboratories
3-9-11, Midori-cho
Musashino-shi
Tokyo-180, Japan
E-mail: murakami@ntt-20.ecl.net

Mitsuru Maruyama
NTT Software Laboratories
3-9-11, Midori-cho
Musashino-shi
Tokyo-180, Japan
E-mail: mitsuru@ntt-20.ecl.net
πŸ“¦ where this page comes from