Network Working Group F. L. Templin, Ed. Internet-Draft Boeing Research & Technology Intended status: Standards Track 21 May 2025 Expires: 22 November 2025 IPv4 Parcels and Advanced Jumbos (AJs) draft-templin-intarea-parcels2-18 Abstract IPv6 Parcels and Advanced Jumbos (AJs) present new data packaging constructs for both existing Internetworking pathways and a new link model for the future. As is often the case, technologies developed in the IPv6 space can also be applied in IPv4 and vice-versa. This document presents the adaptations necessary to support Parcels and AJs in IPv4. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 22 November 2025. Copyright Notice Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Templin Expires 22 November 2025 [Page 1] Internet-Draft IP Parcels May 2025 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 3 3. IPv4 Parcels and Advanced Jumbos (AJs) . . . . . . . . . . . 3 3.1. IPv4 Total Length . . . . . . . . . . . . . . . . . . . . 3 3.2. IPv4 Time To Live (TTL) . . . . . . . . . . . . . . . . . 4 3.3. IPv4 Parcel/Jumbo Payload Length . . . . . . . . . . . . 4 3.4. IPv4-Compatible IPv6 Addresses . . . . . . . . . . . . . 4 3.5. IPv4 Parcel Packetization/Restoration . . . . . . . . . . 4 3.6. Parcel Probing . . . . . . . . . . . . . . . . . . . . . 5 3.7. Advanced Jumbos (AJs) . . . . . . . . . . . . . . . . . . 5 3.8. Jumbo-in-Jumbo Encapsulation . . . . . . . . . . . . . . 5 3.9. Integrity . . . . . . . . . . . . . . . . . . . . . . . . 5 4. Implementation Status . . . . . . . . . . . . . . . . . . . . 6 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 8.1. Normative References . . . . . . . . . . . . . . . . . . 6 8.2. Informative References . . . . . . . . . . . . . . . . . 7 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 8 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9 1. Introduction IPv6 Parcels and Advanced Jumbos (AJs) [I-D.templin-6man-parcels2] present new data packaging constructs for existing Internetworking pathways and a new link model for the future. As is often the case, technologies developed in the IPv6 space [RFC8200] can also be applied in IPv4 [RFC0791] and vice-versa. This document presents the differences that must be addressed to adapt IPv6 Parcels and AJs to IPv4. All aspects of IPv6 Parcels and AJs, including the use of IP extension headers and control messaging, apply also to IPv4. Only differences in the IP header format and some control option encapsulations need to be accounted for. The same as for IPv6, IPv4 parcels represent a network encapsulation for the multi-segment buffers managed by Generic Segment Offload (GSO) and Generic Receive Offload (GRO); these buffers are now known as "parcel buffers" or simply "parcels" which become "IP parcels" following encapsulation in {TCP,UDP}/IP headers. This document specifies the adaptations necessary to support IPv4 parcels and AJs. Templin Expires 22 November 2025 [Page 2] Internet-Draft IP Parcels May 2025 2. Requirements IPv4 parcels and AJs observe all requirements established for IPv6 [I-D.templin-6man-parcels2] including the use of IPv6 Hop-by-Hop (HBH) and Destination Options headers. This means that nodes that recognize IPv4 parcels/AJs MUST recognize and correctly process IP protocol 0 (HBH Option) and IP protocol 60 (Destination Option) extension headers the same as for IPv6 when they occur in an extension header chain following the IPv4 header but before the upper layer payload. When an IPv4 router or destination end system processes a parcel probe for which the IPv4 Protocol field encodes an unrecognized value (such as 0 for HBH or 60 for Destination Options), it drops the probe and returns an ICMPv4 "Destination Unreachable - Protocol Unreachable" message [RFC0792]. The source should regard any such messages as an advisory indication that encapsulation may be needed in future probes. The use of IPv6 extension headers for IPv4 is specified in [I-D.herbert-ipv4-eh]. The same as for IPv6, IPv4 Parcels and AJs are closely related to the AERO [I-D.templin-6man-aero3] and OMNI [I-D.templin-6man-omni3] specifications. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119][RFC8174] when, and only when, they appear in all capitals, as shown here. 3. IPv4 Parcels and Advanced Jumbos (AJs) All aspects of [I-D.templin-6man-parcels2] are imported as normative specifications for IPv4 parcels and AJs, with the exception of the following differences: 3.1. IPv4 Total Length The IPv6 header includes a "Payload Length" field defined as the: "Length of the IPv6 payload, i.e., the rest of the packet following this IPv6 header, in octets". The IPv4 header instead includes a "Total Length" field defined as: "the length of the datagram, measured in octets, including internet header and data". Templin Expires 22 November 2025 [Page 3] Internet-Draft IP Parcels May 2025 3.2. IPv4 Time To Live (TTL) The IPv4 "Time To Live (TTL)" and IPv6 "Hop Limit" values serve similar purposes but may differ in operational practice. In particular, the source sets the TTL/Hop Limit to an initial value and each router in the path to the destination decrements the TTL/Hop Limit when it forwards a parcel/AJ/probe. While IPv6 requires routers to decrement the Hop Limit by exactly 1 [RFC8200], IPv4 routers are permitted by [RFC1812] to decrement TTL by values other than 1. This difference is of no consequence to IP parcels and AJs since they are primarily end-to-end services. 3.3. IPv4 Parcel/Jumbo Payload Length The Parcel Payload Length field in the Parcel Payload HBH Option of IPv4 parcels/AJs encodes the length of the IPv4 header plus the length of the IPv6 extension headers plus the length of the {TCP,UDP} header (plus options and option length field when present) plus the Parcel Integrity Block (PIB) length plus the Forward Error Correction (FEC) block length plus the combined lengths of all concatenated segments in the Parcel Buffer (PB). Therefore, the length of the IPv4 header is included for IPv4 whereas the header length is not included for IPv6. 3.4. IPv4-Compatible IPv6 Addresses Whenever an IPv4 address needs to be coded in an IPv6 address field, the address is coded as an IPv4-compatible IPv6 address as specified in [RFC4291]. 3.5. IPv4 Parcel Packetization/Restoration When a node performs packetization on a {TCP,UDP}/IPv4 parcel, it inserts a {TCP,UDP} Parcel Parameters Option the same as for IPv6 [I-D.templin-6man-parcels2]. Packetization of IPv4 parcels is equivalent to Generic Segment Offload (GSO). Templin Expires 22 November 2025 [Page 4] Internet-Draft IP Parcels May 2025 The IPv4 destination then performs restoration by gathering up IPv4 packets that arrive for the same Source, Destination and Flow Label and with Parcel Parameters including the same Identification. The Parcel Parameters Identification and Index then determine the ordinal position of each packet segment to be concatenated into the restoration buffer, i.e., the same as for IPv6. (Note: if the IPv4 destination does not recognize the {TCP,UDP} Parcel Parameters Option, it simply processes the packet as a singleton IPv4 packet. This would result in correct behavior, but with restoration disabled. Restoration of IPv4 parcels is equivalent to Generic Receive Offload (GRO).) 3.6. Parcel Probing When an IPv4 destination receives an intact IPv4 packet with a parcel probe indication, it processes the probe and returns a Parcel Probe Reply the same as specified for IPv6 [I-D.templin-6man-parcels2]. When the IPv4 source receives a packet that includes a Parcel Probe Reply Destination Option it matches the Identification value with its recently-transmitted probes. If there is a match, the source accepts the MTU value found in the Destination Option. 3.7. Advanced Jumbos (AJs) All aspects of IPv4 Advanced Jumbos (AJ) are processed the same as for IPv6 AJs. 3.8. Jumbo-in-Jumbo Encapsulation Original IPv4 parcels/AJs can follow the encapsulation forwarding paths across successive OMNI links in the path using "jumbo-in-jumbo" encapsulation the same as for IPv6. The OMNI link ingress encapsulates each IPv4 parcel/AJ in an OMNI IPv6 header plus any outer L2 encapsulations which may include an IPv4 header with a Parcel Payload HBH Option. All aspects of this "jumbo-in-jumbo" encapsulation are the same as for IPv6. 3.9. Integrity The standard TCP [RFC9293] and UDP [RFC0768] pseudo-headers for Internet checksum calculation include only a 16-bit length field. This means that IPv4 can only accommodate parcels/AJs no larger than 65535 octets unless (for UDP) checksums are disabled. Templin Expires 22 November 2025 [Page 5] Internet-Draft IP Parcels May 2025 4. Implementation Status An early prototype of UDP/IPv4 parcels (draft version -15) has been implemented relative to the linux-5.10.67 kernel and ION-DTN ion- open-source-4.1.0 source distributions. Patch distribution found at: "https://github.com/fltemplin/ip-parcels.git". 5. IANA Considerations There are no IANA requirements for IPv4 Parcels and Advanced Jumbos. 6. Security Considerations Security Considerations are the same as for IPv6 as found in [I-D.templin-6man-parcels2]. 7. Acknowledgements This work was inspired by ongoing AERO/OMNI/DTN investigations. The concepts were further motivated through discussions with colleagues. Honoring life, liberty and the pursuit of happiness. 8. References 8.1. Normative References [I-D.herbert-ipv4-eh] Herbert, T., "IPv4 Extension Headers and Flow Label", Work in Progress, Internet-Draft, draft-herbert-ipv4-eh-03, 22 February 2024, . [I-D.templin-6man-parcels2] Templin, F., "IPv6 Parcels and Advanced Jumbos (AJs)", Work in Progress, Internet-Draft, draft-templin-6man- parcels2-24, 16 April 2025, . [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, DOI 10.17487/RFC0768, August 1980, . [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, DOI 10.17487/RFC0791, September 1981, . Templin Expires 22 November 2025 [Page 6] Internet-Draft IP Parcels May 2025 [RFC0792] Postel, J., "Internet Control Message Protocol", STD 5, RFC 792, DOI 10.17487/RFC0792, September 1981, . [RFC1812] Baker, F., Ed., "Requirements for IP Version 4 Routers", RFC 1812, DOI 10.17487/RFC1812, June 1995, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, DOI 10.17487/RFC4291, February 2006, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", STD 86, RFC 8200, DOI 10.17487/RFC8200, July 2017, . [RFC9293] Eddy, W., Ed., "Transmission Control Protocol (TCP)", STD 7, RFC 9293, DOI 10.17487/RFC9293, August 2022, . 8.2. Informative References [I-D.templin-6man-aero3] Templin, F., "Automatic Extended Route Optimization (AERO)", Work in Progress, Internet-Draft, draft-templin- 6man-aero3-44, 21 April 2025, . [I-D.templin-6man-omni3] Templin, F., "Transmission of IP Packets over Overlay Multilink Network (OMNI) Interfaces", Work in Progress, Internet-Draft, draft-templin-6man-omni3-57, 21 April 2025, . Templin Expires 22 November 2025 [Page 7] Internet-Draft IP Parcels May 2025 [RFC8799] Carpenter, B. and B. Liu, "Limited Domains and Internet Protocols", RFC 8799, DOI 10.17487/RFC8799, July 2020, . Appendix A. Change Log << RFC Editor - remove prior to publication >> Changes from version -17 to -17: * Updated for consistency with IPv6 Parcels/AJs. Changes from version -15 to -16: * Changed suggested Code values for PTB messages in IANA considerations. Changes from version -14 to -15: * Updated to match changes made in the IPv6 version. Changes from version -13 to -14: * Updated to match changes made in the IPv6 version. Changes from version -12 to -13: * Abbreviated Hop-by-Hop as "HBH". Changes from version -11 to -12: * Tightened specification of Parcel/Jumbo Payload Length. Changes from version -10 to -11: * Update version and references. Changes from version -09 to -10: * Allow UDP options to appear in larger parcels and AJs based on a "UDP Option Length" trailer. Changes from version -08 to -09: * Terminology. Changes from version -07 to -08: Templin Expires 22 November 2025 [Page 8] Internet-Draft IP Parcels May 2025 * Add terminology and general cleanup. Changes from version -06 to -07: * Removed defunct text on parcel probe responses. Changes from version -05 to -06: * Moved all per-segment integrity checks into Parcel Integrity Block header. This allows hop-by-hop integrity checking of the end-to- end integrity check values. Changes from earlier versions: * Submit for review. Author's Address Fred L. Templin (editor) Boeing Research & Technology P.O. Box 3707 Seattle, WA 98124 United States of America Email: fltemplin@acm.org Templin Expires 22 November 2025 [Page 9]