RFC 1954

Transmission of Flow Labelled IPv4 on ATM Data Links Ipsilon Version 1.0

๐Ÿ“… published May 1996, from ietf

Ipsilon Version 1.0 ๐Ÿ’–

okay so this doc is from May 1996 and it's giving Network Working Group energy ๐Ÿงš. It's RFC 1954, and it's an Informational category doc, so it's not a standard, it's just sharing info โœจ. The authors are P. Newman, R. Hinden, E. Hoffman, F. Ching Liaw, T. Lyon, and G. Minshall (all from Ipsilon), plus W. L. Edwards from Sprint ๐Ÿซถ. The title block doesn't list anything it obsoletes or updates, so there's nothing to chase down there ๐Ÿ’….


Status of this Memo ๐ŸŽ€

This doc is info for the Internet community. It does NOT specify an Internet standard of any kind ๐Ÿ™ˆ. Distribution of it is unlimited, so share away ๐Ÿ’œ.

IESG Note ๐ŸŒธ

Okay this part is important bestie ๐Ÿ‘€. This note documents a private protocol for IPv4-based flows. This protocol 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 ๐Ÿ˜ญ. So read it like a cool experiment, not a rulebook โœจ.

Abstract ๐Ÿ“

The vibe here is: this doc explains how to send IPv4 datagrams over an ATM data link. It covers the default way, and it also covers the way when flow labelling is in play, using the Ipsilon Flow Management Protocol [IFMP] ๐Ÿงš.

Table of Contents ๐Ÿ’…

   Introduction....................................................2
   1. Labels.......................................................2
   2. Default Encapsulation........................................2
   3. Flow Type 0 Encapsulation....................................3
   4. Flow Type 1 Encapsulation....................................4
   5. Flow Type 2 Encapsulation....................................5
   References......................................................7
   Security Considerations.........................................7
   Authors' Addresses..............................................7

Introduction โœจ

Okay so the intro is basically the whole premise ๐Ÿ’–. This doc specifies how IPv4 datagrams get transmitted over an ATM data link, both the default way and the flow-labelled way via [IFMP] ๐Ÿฆ‹. The ATM-specific stuff like OAM cells, the CLP bit, and ABR RM cells is not used, no cap ๐Ÿ’….

For reserved VCIs, the only ones are VPI = 0, VCI = 0 (which means an unassigned cell) and VPI = 0, VCI = 15 (which is used for the default encapsulation) ๐ŸŒˆ. And the big rule: IFMP messages MUST be sent using the default encapsulation ๐Ÿšจ. No exceptions, periodt ๐Ÿ‘‘.

1. Labels ๐Ÿฆ‹

Labels, as IFMP carries them, get realized on an ATM data link as specific VPI/VCIs โœจ. Here's how the Label field for ATM labels is laid out:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Reservd|          VPI          |             VCI               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

So the low order 16 bits of the label are the VCI, and the least significant bit of the Label field lines up with the least significant bit of the VCI ๐Ÿ’…. If the link can't support a full 16 bit VCI, the unused bits of the VCI MUST be the most significant bits, and they MUST be set to zero ๐Ÿ™ˆ.

The next 12 higher order bits are the VPI, and the least significant of those lines up with the least significant bit of the VPI ๐ŸŒธ. If the link can't support a full 12 bit VPI, then the unused bits of the VPI MUST be the most significant bits, and they MUST be set to zero ๐Ÿ’œ. Last thing: the most significant four bits of the label are reserved. The sender SHOULD set them to zero, and the receiver ignores them ๐Ÿซถ.

2. Default Encapsulation ๐ŸŒˆ

The default encapsulation for IPv4 packets on ATM data links is the LLC/SNAP encapsulation from section 4.1 "LLC encapsulation for routed protocols" of RFC 1483 [RFC1483] ๐ŸŽ€. These frames start with the octets 0xAA 0xAA 0x03 0x00 0x00 0x00 0x08 0x00, which is the LLC/SNAP header for IPv4 โœจ. The LLC/SNAP header gets stuck in front of the IP datagram, and the whole packet gets wrapped in the payload of an AAL-5 CPCS-PDU, as RFC 1483 says, and it looks like this ๐Ÿงš:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               LLC (0xAA-AA-03)                |               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               |
   |                   SNAP (0x00-00-00-08-00)                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                         IPv4 Datagram                         ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   Pad (0 - 47 octets)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +               AAL-5 CPCS-PDU Trailer (8 octets)               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The MTU of an IPv4 datagram using the default encapsulation is 1500 octets ๐Ÿ’–. And frames using the default encapsulation get sent to VPI = 0, VCI = 15 โœจ.

3. Flow Type 0 Encapsulation ๐Ÿฆ‹

All IPv4 frames using Flow Type 0 get encapsulated in the payload of an AAL-5 CPCS-PDU ๐Ÿ’…. This is the null encapsulation from section 5.1 "VC based multiplexing of routed protocols" of RFC 1483 [RFC1483] ๐ŸŒธ. There's no LLC/SNAP header, so it's giving minimalism ๐Ÿงš. The first octet of the frame lines up with the first octet of the IPv4 datagram, which is the octet holding the IP version number (4) and the Internet Header Length (IHL) ๐Ÿซถ. The IP datagram goes in the payload of an AAL-5 CPCS-PDU as RFC 1483 specifies, like this:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                         IPv4 Datagram                         ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Pad (0 - 47 octets)                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                AAL-5 CPCS-PDU Trailer (8 octets)              +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The MTU of an IPv4 datagram using Flow Type 0 encapsulation is 1500 octets ๐ŸŽ€. Frames using Flow Type 0 encapsulation get sent to the VPI/VCI listed in the Label field of the matching IFMP Flow Type 0 Redirect message element [IFMP] ๐Ÿ‘‘.

4. Flow Type 1 Encapsulation ๐Ÿ’œ

All IPv4 frames using Flow Type 1 get encapsulated directly in the payload of an AAL-5 CPCS-PDU ๐Ÿ”ฅ. This is the null encapsulation from section 5.1 "VC based multiplexing of routed protocols" of RFC 1483 [RFC1483] ๐ŸŒˆ. Again, no LLC/SNAP header ๐Ÿ’….

This is where it gets really clever, bestie ๐Ÿง . The following IP header fields are not transmitted: Version, Internet Header Length (IHL), Type of Service (TOS), Time to Live (TTL), Protocol, Source Address, and Destination Address ๐Ÿ™ˆ. On top of that, the first 4 octets right after the IP header (as the IHL field says) are not transmitted either ๐Ÿฆ‹. Those 4 octets are the source and destination ports for TCP and UDP datagrams, so yeah, they're doing a lot of work ๐Ÿ˜ญ.

The Total Length field doesn't change. It's still the total length of the IP datagram from before those fields got removed ๐Ÿ’–. For the Checksum, the transmitted value is the checksum that would've been computed for the whole IP header if the TTL field had been set to zero. In other words, the actual TTL value gets "subtracted" from the Checksum before transmission, using one's-complement arithmetic ๐Ÿงฎโœจ.

The IP datagram goes in the payload of an AAL-5 CPCS-PDU as RFC 1483 specifies ๐Ÿซถ:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Total Length          |        Identification         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Flags|     Fragment Offset     |           Checksum            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                             Data                              ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Pad (0 - 47 octets)                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                AAL-5 CPCS-PDU Trailer (8 octets)              +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The MTU of the IPv4 datagram using Flow Type 1 encapsulation is 1484 octets, which is 1500 octets minus the 16 octets from above ๐Ÿ“. Frames using Flow Type 1 encapsulation get sent to the VPI/VCI listed in the Label field of the matching IFMP Flow Type 1 redirect message element [IFMP] ๐ŸŒธ.

โœจ Part 2 is coming with Section 5, the References, Security Considerations, and the Authors' Addresses, so stay tuned, bestie ๐Ÿ’…๐Ÿฆ‹

5. Flow Type 2 Encapsulation โœจ

okay so Flow Type 2 is giving minimalist ๐Ÿ’… every IPv4 frame on this flow gets dropped straight into the payload of an AAL-5 CPCS-PDU. No LLC/SNAP header at all ๐Ÿ™ˆ it's the null encapsulation from section 5.1 "VC based multiplexing of routed protocols" of [RFC1483], so it's literally the bare minimum.

Also, a bunch of IP header fields just get left behind, bestie: Version, Internet Header Length (IHL), Time to Live (TTL), Source Address, and Destination Address are NOT transmitted ๐Ÿ’€ wild, I know. What does get sent is the first 4 octets right after the IP header (wherever IHL says that header ends) ๐Ÿฆ‹ and those 4 octets are the source and destination ports for TCP and UDP datagrams, so the important bits survive โœจ

The Total Length field keeps its original value ๐ŸŽ€ it still says how long the IP datagram was before all those fields got stripped. The Checksum is the iconic part: it's the checksum you'd get for the whole IP header if TTL were set to zero. Then the real TTL gets "subtracted" from that checksum using one's-complement arithmetic before sending ๐Ÿงš lowkey genius, ngl.

The IP datagram rides inside the AAL-5 CPCS-PDU payload as RFC 1483 describes, and it looks like this ๐Ÿ‘‡

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Reserved    |Type of Service|         Total Length          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Identification         |Flags|     Fragment Offset     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Reserved    |   Protocol    |           Checksum            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                             Data                              ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Pad (0 - 47 octets)                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                AAL-5 CPCS-PDU Trailer (8 octets)              +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Reserved fields aren't used for anything ๐Ÿซถ the sender should set them to zero, and the receiver should just ignore them.

The MTU for IPv4 datagrams on Flow Type 2 is 1492 octets, which is 1500 minus the 8 octets we just talked about ๐Ÿ“

Frames on Flow Type 2 get sent to the VPI/VCI named in the Label field of the matching IFMP Flow Type 2 redirect message element [IFMP] ๐ŸŒธ so that label is the address book entry you actually need.


References

      [IFMP] Newman, P., et. al., "Ipsilon Flow Management Protocol
                Specification for IPv Version 1.0", Ipsilon Networks
                Inc., RFC 1953, May 1996.

      [RFC1483] Heinanen, J., "Multiprotocol Encapsulation over ATM
                Adaptation Layer 5", RFC 1483, July 1993.

Security Considerations โš ๏ธ

Security issues are not discussed in this document. ๐Ÿ™ˆ Yes, the whole thing is silent on security, so it's not a flex, it's a gap. Don't assume it's been handled just because it isn't mentioned ๐Ÿฅ€

Authors' Addresses ๐ŸŽ€

   Peter Newman                        Phone: +1 (415) 846-4603
   Ipsilon Networks, Inc.              EMail: pn@ipsilon.com

   W. L. Edwards, Chief Scientist      Phone:  +1 (913) 534 5334
   Sprint                              EMail:  texas@sprintcorp.com

   Robert M. Hinden                    Phone: +1 (415) 846-4604
   Ipsilon Networks, Inc.              EMail: hinden@ipsilon.com

   Eric Hoffman                        Phone: +1 (415) 846-4610
   Ipsilon Networks, Inc.              EMail: hoffman@ipsilon.com

   Fong Ching Liaw                     Phone: +1 (415) 846-4607
   Ipsilon Networks, Inc.              EMail: fong@ipsilon.com

   Tom Lyon                            Phone: +1 (415) 846-4601
   Ipsilon Networks, Inc.              EMail: pugs@ipsilon.com

   Greg Minshall                       Phone: +1 (415) 846-4605
   Ipsilon Networks, Inc.              EMail: minshall@ipsilon.com

Ipsilon Networks, Inc. is located at:

   2191 East Bayshore Road
   Suite 100
   Palo Alto, CA 94303
   USA

Sprint is located at:

   Sprint
   Sprint Technology Services - Long Distance Division
   9300 Metcalf Avenue
   Mailstop KSOPKB0802
   Overland Park, KS 66212-6333
   USA
๐Ÿ“ฆ where this page comes from