RFC 1954
Transmission of Flow Labelled IPv4 on ATM Data Links Ipsilon Version 1.0
Transmission of Flow Labelled IPv4 on ATM Data Links ๐ฆ
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
- ietf: rfc1954 1996-05
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms