diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc9188.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc9188.txt')
-rw-r--r-- | doc/rfc/rfc9188.txt | 817 |
1 files changed, 817 insertions, 0 deletions
diff --git a/doc/rfc/rfc9188.txt b/doc/rfc/rfc9188.txt new file mode 100644 index 0000000..d3d1a98 --- /dev/null +++ b/doc/rfc/rfc9188.txt @@ -0,0 +1,817 @@ + + + + +Independent Submission J. Zhu +Request for Comments: 9188 Intel +Category: Experimental S. Kanugovi +ISSN: 2070-1721 Nokia + February 2022 + + + Generic Multi-Access (GMA) Encapsulation Protocol + +Abstract + + A device can be simultaneously connected to multiple networks, e.g., + Wi-Fi, LTE, 5G, and DSL. It is desirable to seamlessly combine the + connectivity over these networks below the transport layer (L4) to + improve the quality of experience for applications that do not have + built-in multi-path capabilities. Such optimization requires + additional control information, e.g., a sequence number, in each + packet. This document presents a new lightweight and flexible + encapsulation protocol for this need. The solution has been + developed by the authors based on their experiences in multiple + standards bodies including the IETF and 3GPP. However, this document + is not an Internet Standard and does not represent the consensus + opinion of the IETF. This document will enable other developers to + build interoperable implementations in order to experiment with the + protocol. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for examination, experimental implementation, and + evaluation. + + This document defines an Experimental Protocol for the Internet + community. This is a contribution to the RFC Series, independently + of any other RFC stream. The RFC Editor has chosen to publish this + document at its discretion and makes no statement about its value for + implementation or deployment. Documents approved for publication by + the RFC Editor are not candidates for any level of Internet Standard; + see Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + https://www.rfc-editor.org/info/rfc9188. + +Copyright Notice + + Copyright (c) 2022 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. + +Table of Contents + + 1. Introduction + 1.1. Scope of Experiment + 2. Conventions Used in This Document + 3. Use Case + 4. GMA Encapsulation Methods + 4.1. Trailer-Based IP Encapsulation + 4.2. Header-Based IP Encapsulation + 4.3. Header-Based Non-IP Encapsulation + 4.4. IP Protocol Identifier + 5. Fragmentation + 6. Concatenation + 7. Security Considerations + 8. IANA Considerations + 9. References + 9.1. Normative References + 9.2. Informative References + Authors' Addresses + +1. Introduction + + A device can be simultaneously connected to multiple networks, e.g., + Wi-Fi, LTE, 5G, and DSL. It is desirable to seamlessly combine the + connectivity over these networks below the transport layer (L4) to + improve the quality of experience for applications that do not have + built-in multi-path capabilities. + + Figure 1 shows the Multi-Access Management Service (MAMS) user-plane + protocol stack [MAMS], which has been used in today's multi-access + solutions [ATSSS] [LWIPEP] [GRE1] [GRE2]. It consists of two layers: + convergence and adaptation. + + The convergence layer is responsible for multi-access operations, + including multi-link (path) aggregation, splitting/reordering, + lossless switching/retransmission, fragmentation, concatenation, etc. + It operates on top of the adaptation layer in the protocol stack. + From the perspective of a transmitter, a User Payload (e.g., IP + packet) is processed by the convergence layer first and then by the + adaptation layer before being transported over a delivery connection; + from the receiver's perspective, an IP packet received over a + delivery connection is processed by the adaptation layer first and + then by the convergence layer. + + +-----------------------------------------------------+ + | User Payload, e.g., IP Protocol Data Unit (PDU) | + +-----------------------------------------------------+ + +-----------------------------------------------------------+ + | +-----------------------------------------------------+ | + | | Multi-Access (MX) Convergence Layer | | + | +-----------------------------------------------------+ | + | +-----------------------------------------------------+ | + | | MX Adaptation | MX Adaptation | MX Adaptation | | + | | Layer | Layer | Layer | | + | +-----------------+-----------------+-----------------+ | + | | Access #1 IP | Access #2 IP | Access #3 IP | | + | +-----------------------------------------------------+ | + | MAMS User-Plane Protocol Stack | + +-----------------------------------------------------------+ + + Figure 1: MAMS User-Plane Protocol Stack + + GRE (Generic Routing Encapsulation) [LWIPEP] [GRE1] [GRE2] can be + used as the encapsulation protocol at the convergence layer to encode + additional control information, e.g., key and sequence number. + However, there are two main drawbacks with this approach: + + * It is difficult to introduce new control fields because the GRE + header formats are already defined, and + + * IP-over-IP tunneling (required for GRE) leads to higher overhead + especially for small packets. + + For example, the overhead of IP-over-IP/GRE tunneling with both key + and sequence Number is 32 bytes (20-byte IP header + 12-byte GRE + header), which is 80% of a 40-byte TCP ACK packet. + + This document presents a lightweight Generic Multi-Access (GMA) + encapsulation protocol for the convergence layer. It supports three + encapsulation methods: trailer-based IP encapsulation, header-based + IP encapsulation, and non-IP encapsulation. Particularly, the IP + encapsulation methods avoid IP-over-IP tunneling overhead (20 bytes), + which is 50% of a 40-byte TCP ACK packet. Moreover, it introduces + new control fields to support fragmentation and concatenation, which + are not available in GRE-based solutions [LWIPEP] [GRE1] [GRE2]. + + The GMA protocol only operates between endpoints that have been + configured to use GMA. This configuration can be through any control + messages and procedures, including, for example, Multi-Access + Management Services [MAMS]. Moreover, UDP or IPsec tunneling can be + used at the adaptation sublayer to protect GMA operation from + intermediate nodes. + + The solution described in this document was developed by the authors + based on their experiences in multiple standards bodies including the + IETF and 3GPP. However, this document is not an Internet Standard + and does not represent the consensus opinion of the IETF. This + document presents the protocol specification to enable + experimentation as described in Section 1.1 and to facilitate other + interoperable implementations. + +1.1. Scope of Experiment + + The protocol described in this document is an experiment. The + objective of the experiment is to determine whether the protocol + meets the requirements, can be safely used, and has support for + deployment. + + Section 4 describes three possible encapsulation methods that are + enabled by this protocol. Part of this experiment is to assess + whether all three mechanisms are necessary or whether, for example, + all implementations are able to support the main "trailer-based" IP + encapsulation method. Similarly, the experiment will investigate the + relative merits of the IP and non-IP encapsulation methods. + + It is expected that this protocol experiment can be conducted on the + Internet since the GMA packets are identified by an IP protocol + number and the protocol is intended for single-hop propagation; + devices should not be forwarding packets, and if they do, they will + not need to examine the payload, while destination systems that do + not support this protocol should not receive such packets and will + handle them as unknown payloads according to normal IP processing. + Thus, experimentation is conducted between consenting end systems + that have been mutually configured to participate in the experiment + as described in Section 7. + + Note that this experiment "reuses" the IP protocol identifier 114 as + described in Section 4.4. Part of this experiment is to assess the + safety of doing this. The experiment should consider the following + safety mechanisms: + + * GMA endpoints SHOULD detect non-GMA IP packets that also use 114 + and log an error to report the situation (although such error + logging MUST be subject to rate limits). + + * GMA endpoints SHOULD stop using 114 and switch to non-IP + encapsulation, i.e., UDP encapsulation (Figure 7), after detecting + any non-GMA usage of 114. + + The experiment SHOULD use a packet tracing tool, e.g., WireShark or + TCPDUMP, to monitor both ingress and egress traffic at GMA endpoints + and ensure the above safety mechanisms are implemented. + + Path quality measurements (one-way delay, loss, etc.) and congestion + detection are performed by the receiver based on the GMA control + fields, e.g., Sequence Number, Timestamp, etc. The receiver will + then dynamically control how to split or steer traffic over multiple + delivery connections accordingly. The GMA control protocol [GMAC] + MAY be used for signaling between GMA endpoints. Another objective + of the experiment is to evaluate the usage of various receiver-based + algorithms [GCC] [MPIP] in multi-path traffic management and the + impact on the End-to-End (E2E) performance (throughput, delay, etc.) + of higher-layer (transport) protocols, e.g., TCP, QUIC, WebRTC, etc. + + The authors will continually assess the progress of this experiment + and encourage other implementers to contact them to report the status + of their implementations and their experiences with the protocol. + +2. Conventions Used in This Document + + 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. Use Case + + As shown in Figure 2, a client device (e.g., smartphone, laptop, + etc.) may connect to the Internet via both Wi-Fi and LTE connections, + one of which (e.g., LTE) may operate as the anchor connection, and + the other (e.g., Wi-Fi) may operate as the delivery connection. The + anchor connection provides the IP address and connectivity for end- + to-end Internet access, and the delivery connection provides an + additional path between the client and Multi-Access Gateway for + multi-access optimizations. + + Multi-Access Aggregation + + +---+ +---+ + | |A|--- LTE Connection -----|C| | + |U|-| |-|S| Internet + | |B|--- Wi-Fi Connection ---|D| | + +---+ +---+ + client Multi-Access Gateway + + Figure 2: GMA-Based Multi-Access Aggregation + + A: The adaptation-layer endpoint of the LTE connection resides in + the client. + + B: The adaptation-layer endpoint of the Wi-Fi connection resides in + the client. + + C: The adaptation-layer endpoint of the LTE connection resides in + the Multi-Access Gateway, aka N-MADP (Network Multi-Access Data + Proxy) in [MAMS]. + + D: The adaptation-layer endpoint of the Wi-Fi connection resides in + the Multi-Access Gateway. + + U: The convergence-layer endpoint resides in the client. + + S: The convergence-layer endpoint resides in the Multi-Access + Gateway. + + For example, per-packet aggregation allows a single IP flow to use + the combined bandwidth of the two connections. In another example, + packets lost due to a temporary link outage may be retransmitted. + Moreover, packets may be duplicated over multiple connections to + achieve high reliability and low latency, where duplicated packets + are eliminated by the receiving side. Such multi-access optimization + requires additional control information, e.g., a sequence number, in + each packet, which can be supported by the GMA encapsulation protocol + described in this document. + + The GMA protocol described in this document is designed for multiple + connections, but it may also be used when there is only one + connection between two endpoints. For example, it may be used for + loss detection and recovery. In another example, it may be used to + concatenate multiple small packets and reduce per-packet overhead. + +4. GMA Encapsulation Methods + + The GMA encapsulation protocol supports the following three methods: + + * Trailer-based IP Encapsulation (Section 4.1) + + * Header-based IP Encapsulation (Section 4.2) + + * Header-based non-IP Encapsulation (Section 4.3) + + Non-IP encapsulation MUST be used if the original IP packet is IPv6. + + Trailer-based IP encapsulation MUST be used if it is supported by GMA + endpoints and the original IP packet is IPv4. + + Header-based encapsulation MUST be used if the trailer-based method + is not supported by either the client or Multi-Access Gateway. In + this case, if the adaptation layer, e.g., UDP tunneling, supports + non-IP packet format, non-IP encapsulation MUST be used; otherwise, + header-based IP encapsulation MUST be used. + + If non-IP encapsulation is configured, a GMA header MUST be present + in every packet. In comparison, if IP encapsulation is configured, a + GMA header or trailer may be added dynamically on a per-packet basis, + and it indicates the presence of a GMA header (or trailer) to set the + protocol type of the GMA PDU to "114" (see Section 4.4). + + The GMA endpoints MAY configure the GMA encapsulation method through + control signaling or pre-configuration. For example, the "MX UP + Setup Configuration Request" message as specified in Multi-Access + Management Service [MAMS] includes "MX Convergence Method + Parameters", which provides the list of parameters to configure the + convergence layer, and can be extended to indicate the GMA + encapsulation method. + + GMA endpoint MUST discard a received packet and MAY log an error to + report the situation (although such error logging MUST be subject to + rate limits) under any of the following conditions: + + * The GMA version number in the GMA header (or trailer) is not + understood or supported by the GMA endpoint. + + * A flag bit in the GMA header (or trailer) not understood or + supported by the GMA endpoint is set to "1". + +4.1. Trailer-Based IP Encapsulation + + |<---------------------GMA PDU ----------------------->| + +------------------------------------------------------+ + | IP hdr | IP payload | GMA Trailer | + +------------------------------------------------------+ + |<------- GMA SDU (user payload)-------->| + + Figure 3: GMA PDU Format with Trailer-based IP Encapsulation + + This method SHALL NOT be used if the original IP packet (GMA service + data unit (GMA SDU)) is IPv6. + + Figure 3 shows the trailer-based IP encapsulation GMA protocol data + unit (GMA PDU) format. A (GMA) PDU may carry one or multiple IP + packets, aka (GMA) SDUs, in the payload, or a fragment of the SDU. + + The protocol type field in the IP header of the GMA PDU MUST be + changed to 114 (Any 0-Hop Protocol) (see Section 4.4) to indicate the + presence of the GMA trailer. + + The following three IP header fields MUST be changed: + + IP Length: Add the length of "GMA Trailer" to the length of the + original IP packet. + + Time To Live (TTL): Set to "1". + + IP checksum: Recalculate after changing "protocol type", "TTL", and + "IP Length". + + The GMA (Generic Multi-Access) trailer MUST consist of two mandatory + fields (the last 3 bytes): Next Header and Flags. + + This is defined as follows: + + Next Header (1 byte): This is the IP protocol type of the (first) + SDU in a PDU; it stores the value before it was overwritten to + 114. + + Flags (2 bytes): Bit 0 is the most significant bit (MSB), and bit 15 + is the least significant bit (LSB). + + Checksum Present (bit 0): If the Checksum Present bit is set to + 1, then the Checksum field is present. + + Concatenation Present (bit 1): If the Concatenation Present bit + is set to 1, then the PDU carries multiple SDUs, and the First + SDU Length field is present. + + Connection ID Present (bit 2): If the Connection ID Present bit + is set to 1, then the Connection ID field is present. + + Flow ID Present (bit 3): If the Flow ID Present bit is set to 1, + then the Flow ID field is present. + + Fragmentation Present (bit 4): If the Fragmentation Present bit + is set to 1, then the PDU carry a fragment of the SDU and the + Fragmentation Control field is present. + + Delivery SN Present (bit 5): If the Delivery SN (Sequence Number) + Present bit is set to 1, then the Delivery SN field is present + and contains the valid information. + + Flow SN Present (bit 6): If the Flow SN Present bit is set to 1, + then the Sequence Number field is present. + + Timestamp Present (bit 7): If the Timestamp Present bit is set to + 1, then the Timestamp field is present. + + TTL Present (bit 8): If the TTL Present bit is set to 1, then the + TTL field is present. + + Reserved (bit 9-12): This is set to "0" and ignored on receipt. + + Version (bit 13~15): This is the GMA version number; it is set to + 0 for the GMA encapsulation protocol specified in this + document. + + The Flags field is at the end of the PDU, and the Next Header field + is the second last. The receiver SHOULD first decode the Flags field + to determine the length of the GMA trailer and then decode each + optional field accordingly. The Generic Multi-Access (GMA) trailer + MAY consist of the following optional fields: + + Checksum (1 byte): This contains the (one's complement) checksum sum + of all 8 bits in the trailer. For purposes of computing the + checksum, the value of the Checksum field is zero. This field is + present only if the Checksum Present bit is set to 1. + + First SDU Length (2 bytes): This is the length of the first IP + packet in the PDU, only included if a PDU contains multiple IP + packets. This field is present only if the Concatenation Present + bit is set to 1. + + Connection ID (1 byte): This contains an unsigned integer to + identify the anchor and delivery connection of the GMA PDU. This + field is present only if the Connection ID Present bit is set to + 1. + + Anchor Connection ID (MSB 4 bits): This contains an unsigned + integer to identify the anchor connection. + + Delivery Connection ID (LSB 4 bits): This contains an unsigned + integer to identify the delivery connection. + + Flow ID (1 byte): This contains an unsigned integer to identify the + IP flow that a PDU belongs to, for example Data Radio Bearer (DRB) + ID [LWIPEP] for a cellular (e.g., LTE) connection. This field is + present only if the Flow ID Present bit is set to 1. + + Fragmentation Control (FC) (1 byte): This provides necessary + information for reassembly, only needed if a PDU carries + fragments. This field is present only if the Fragmentation + Present bit is set to 1. Please refer to Section 5 for its + detailed format and usage. + + Delivery SN (1 byte): This contains an auto-incremented integer to + indicate the GMA PDU transmission order on a delivery connection. + Delivery SN is needed to measure packet loss of each delivery + connection and therefore generated per delivery connection per + flow. This field is present only if the Delivery SN Present bit + is set to 1. + + Flow SN (3 bytes): This contains an auto-incremented integer to + indicate the GMA SDU (IP packet) order of a flow. Flow SN is + needed for retransmission, reordering, and fragmentation. It + SHALL be generated per flow. This field is present only if the + Flow SN Present bit is set to 1. + + Timestamp (4 bytes): This contains the current value of the + timestamp clock of the transmitter in the unit of 1 millisecond. + This field is present only if the Timestamp Present bit is set to + 1. + + TTL (1 byte): This contains the TTL value of the original IP header + if the GMA SDU is IPv4, or the Hop-Limit value of the IP header if + the GMA SDU is IPv6. This field is present only if the TTL + Present bit is set to 1. + + Figure 4 shows the GMA trailer format with all the fields present, + and the order of the GMA control fields SHALL follow the bit order in + the Flags field. Note that the bits in the Flags field are ordered + with the first bit transmitted being bit 0 (MSB). All fields are + transmitted in regular network byte order and appear in reverse order + to their corresponding flag bits. If a flag bit is clear, the + corresponding optional field is absent. + + For example, bit 0 (the MSB) of the Flags field is the Checksum + Present bit, and the Checksum field is the last in the trailer with + the exception of the two mandatory fields. Bit 1 is the + Concatenation Present bit, and the FSL field is the second last. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | TTL | Timestamp + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Flow SN | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Delivery SN | FC | Flow ID | Connection ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | First SDU Length (FSL) | Checksum | Next Header | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Flags | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 4: GMA Trailer Format with All Optional Fields Present + +4.2. Header-Based IP Encapsulation + + This method SHALL NOT be used if the original IP packet (GMA SDU) is + IPv6. + + Figure 5 shows the header-based IP encapsulation format. Here, the + GMA header is inserted right after the IP header of the GMA SDU, and + the IP header fields of the GMA PDU MUST be changed the same way as + in trailer-based IP encapsulation. + + +-----------------------------------------------+ + |IP hdr | GMA Header | IP payload | + +-----------------------------------------------+ + + Figure 5: GMA PDU Format with Header-Based IP Encapsulation + + Figure 6 shows the GMA header format. In comparison to the GMA + trailer, the only difference is that the Flags field is now in the + front so that the receiver can first decode the Flags field to + determine the GMA header length. + + The "TTL" field MUST be included and the "TTL" bit in the GMA header + (or Trailer) MUST be set to 1 if (trailer- or header-based) IP + encapsulation is used. + + +------------------------------------------------------+ + | Flags | other fields (TTL, Timestamp, Flow SN, etc.) | + +------------------------------------------------------+ + + Figure 6: GMA Header Format + +4.3. Header-Based Non-IP Encapsulation + + Figure 7 shows the header-based non-IP encapsulation format. Here, + "UDP Tunneling" is configured at the MX adaptation layer. The ports + for "UDP Tunneling" at the client are chosen from the Dynamic Port + range, and the ports for "UDP Tunneling" at the Multi-Access Gateway + are configured and provided to the client through additional control + messages, e.g., [MAMS]. + + "TTL", "FSL", and "Next Header" are no longer needed and MUST not be + included. Moreover, the IP header fields of the GMA SDU remain + unchanged. + + +-------------------------------------------------------------+ + | IP hdr | UDP hdr | GMA Header | IP hdr | IP payload | + +-------------------------------------------------------------+ + |<------- GMA SDU------------>| + |<------------------- GMA PDU------------>| + + Figure 7: GMA PDU Format with Non-IP Encapsulation + +4.4. IP Protocol Identifier + + As described in Section 4.1, IP-encapsulated GMA PDUs are indicated + using the IP protocol type 114. This is designated and recorded by + IANA [IANA] to indicate "any 0-Hop Protocol". No reference is given + in the IANA registry for the definition of this protocol type, and + IANA has no record of why the assignment was made or how it is used, + although it was probably assigned before 1999 [IANA1999]. + + There is some risk associated with "reusing" protocol type 114 + because there may be implementations of other protocols also using + this protocol type. However, because the protocol described in this + document is used only between adjacent devices specifically + configured for this purpose, the use of protocol type 114 should be + safe. + + As described in Section 1.1, one of the purposes of the experiment + described in this document is to verify the safety of using this + protocol type. Deployments should be aware of the risk of a clash + with other uses of this protocol type. + +5. Fragmentation + + If the MTU size of the anchor connection (for GMA SDU) is configured + such that the corresponding GMA PDU length adding the GMA header (or + trailer) and other overhead (UDP tunneling) MAY exceed the MTU of a + delivery connection, GMA endpoints MUST be configured to support + fragmentation through additional control messages [MAMS]. + + The fragmentation procedure at the convergence sublayer is similar to + IP fragmentation [RFC0791] in principle, but with the following two + differences for less overhead: + + * The fragment offset field is expressed in number of fragments. + + * The maximum number of fragments per SDU is 2^7 (=128). + + The Fragmentation Control (FC) field in the GMA trailer (or header) + contains the following bits: + + Bit 7: a More Fragment (MF) flag to indicate if the fragment is the + last one (0) or not (1) + + Bit 0-6: Fragment Offset (in units of fragments) to specify the + offset of a particular fragment relative to the beginning of the + SDU + + A PDU carries a whole SDU without fragmentation if the FC field is + set to all "0"s or the FC field is not present in the trailer. + Otherwise, the PDU contains a fragment of the SDU. + + The Flow SN field in the trailer is used to distinguish the fragments + of one SDU from those of another. The Fragment Offset (FO) field + tells the receiver the position of a fragment in the original SDU. + The More Fragment (MF) flag indicates the last fragment. + + To fragment a long SDU, the transmitter creates n PDUs and copies the + content of the IP header fields from the long PDU into the IP header + of all the PDUs. The length field in the IP header of the PDU SHOULD + be changed to the length of the PDU, and the protocol type SHOULD be + changed to 114. + + The data of the long SDU is divided into n portions based on the MTU + size of the delivery connection. The first portion of the data is + placed in the first PDU. The MF flag is set to "1", and the FO field + is set to "0". The i-th portion of the data is placed in the i-th + PDU. The MF flag is set to "0" if it is the last fragment and set to + "1" otherwise. The FO field is set to i-1. + + To assemble the fragments of an SDU, the receiver combines PDUs that + all have the same Flow SN. The combination is done by placing the + data portion of each fragment in the relative order indicated by the + Fragment Offset in that fragment's GMA trailer (or header). The + first fragment will have the Fragment Offset set to "0", and the last + fragment will have the More Fragment flag set to "0". + + GMA fragmentation operates above the IP layer of individual access + connection (Wi-Fi, LTE) and between the two endpoints of convergence + layer. The convergence layer endpoints (client, Multi-access + Gateway) SHOULD obtain the MTU of individual connection through + either manual configuration or implementing Path MTU Discovery + (PMTUD) as suggested in [RFC8900]. + +6. Concatenation + + The convergence sublayer MAY support concatenation if a delivery + connection has a larger maximum transmission unit (MTU) than the + original IP packet (SDU). Only the SDUs with the same client IP + address and the same Flow ID MAY be concatenated. + + If the (trailer- or header-based) IP encapsulation method is used, + the First SDU Length (FSL) field SHOULD be included in the GMA + trailer (or header) to indicate the length of the first SDU. + Otherwise, the FSL field SHOULD not be included. + + +-----------------------------------------------------------+ + |IP hdr| IP payload |IP hdr| IP payload | GMA Trailer | + +-----------------------------------------------------------+ + + Figure 8: Example of GMA PDU Format with Concatenation and + Trailer-Based IP Encapsulation + + To concatenate two or more SDUs, the transmitter creates one PDU and + copies the content of the IP header field from the first SDU into the + IP header of the PDU. The data of the first SDU is placed in the + first portion of the data of the PDU. The whole second SDU is then + placed in the second portion of the data of the PDU (Figure 8). The + procedure continues until the PDU size reaches the MTU of the + delivery connection. If the FSL field is present, the IP Length + field of the PDU SHOULD be updated to include all concatenated SDUs + and the trailer (or header), and the IP checksum field SHOULD be + recalculated if the packet is IPv4. + + To disaggregate a PDU, if the (header- or trailer-based) IP + encapsulation method is used, the receiver first obtains the length + of the first SDU from the FSL field and decodes the first SDU. The + receiver then obtains the length of the second SDU based on the + length field in the second SDU IP header and decodes the second SDU. + The procedure continues until no byte is left in the PDU. If the + non-IP encapsulation method (Figure 7) is used, the IP header of the + first SDU will not change during the encapsulation process, and the + receiver SHOULD obtain the length of the first SDU directly from its + IP header (Figure 9). + + |<-------1st GMA SDU------------ + +---------------------------------------------------------------+ + | IP hdr | UDP hdr | GMA Header | IP hdr | IP payload | + +---------------------------------------------------------------+ + | IP hdr | IP payload | + +-------------------------------------------+ + -------->|<-------2nd GMA SDU---------------> + + Figure 9: Example of GMA PDU Format with Concatenation and + Header-Based Non-IP (UDP) Encapsulation + + If a PDU contains multiple SDUs, the Flow SN field is for the last + SDU, and the Flow SN of other SDUs carried by the same PDU can be + obtained according to its order in the PDU. For example, if the SN + field is 6 and a PDU contains 3 SDUs (IP packets), the SN is 4, 5, + and 6 for the first, second, and last SDU, respectively. + + GMA concatenation can be used for packing small packets of a single + application, e.g., TCP ACKs, or from multiple applications. Notice + that a single GMA flow may carry multiple application flows (TCP, + UDP, etc.). + + GMA endpoints MUST NOT perform concatenation and fragmentation in a + single PDU. If a GMA PDU carries a fragmented SDU, it MUST NOT carry + any other (fragmented or whole) SDU. + +7. Security Considerations + + Security in a network using GMA should be relatively similar to + security in a normal IP network. GMA is unaware of IP- or higher- + layer end-to-end security as it carries the IP packets as opaque + payload. Deployers are encouraged to not consider that GMA adds any + form of security and to continue to use IP- or higher-layer security + as well as link-layer security. + + The GMA protocol at the convergence sublayer is a 0-hop protocol and + relies on the security of the underlying network transport paths. + When this cannot be assumed, appropriate security protocols (IPsec, + DTLS, etc.) SHOULD be configured at the adaptation sublayer. On the + other hand, packet filtering requires either that a firewall looks + inside the GMA packet or that the filtering is done on the GMA + endpoints. In those environments in which this is considered to be a + security issue, it may be desirable to terminate the GMA operation at + the firewall. + + Local-only packet leak prevention (HL=0, TTL=1) SHOULD be on + preventing the leak of the local-only GMA PDUs outside the "local + domain" to the Internet or to another domain that could use the same + IP protocol type, i.e., 114. + +8. IANA Considerations + + This document has no IANA actions. + +9. References + +9.1. Normative References + + [GRE1] Dommety, G., "Key and Sequence Number Extensions to GRE", + RFC 2890, DOI 10.17487/RFC2890, September 2000, + <https://www.rfc-editor.org/info/rfc2890>. + + [GRE2] Leymann, N., Heidemann, C., Zhang, M., Sarikaya, B., and + M. Cullen, "Huawei's GRE Tunnel Bonding Protocol", + RFC 8157, DOI 10.17487/RFC8157, May 2017, + <https://www.rfc-editor.org/info/rfc8157>. + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + <https://www.rfc-editor.org/info/rfc2119>. + + [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC + 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, + May 2017, <https://www.rfc-editor.org/info/rfc8174>. + +9.2. Informative References + + [ATSSS] 3GPP, "Study on access traffic steering, switch and + splitting support in the 5G System (5GS) architecture", + Release 16, 3GPP TR 23.793, December 2018, + <https://portal.3gpp.org/desktopmodules/Specifications/ + SpecificationDetails.aspx?specificationId=3254>. + + [GCC] Holmer, S., Lundin, H., Carlucci, G., De Cicco, L., and S. + Mascolo, "A Google Congestion Control Algorithm for Real- + Time Communication", Work in Progress, Internet-Draft, + draft-ietf-rmcat-gcc-02, 8 July 2016, + <https://datatracker.ietf.org/doc/html/draft-ietf-rmcat- + gcc-02>. + + [GMAC] Zhu, J. and M. Zhang, "UDP-based Generic Multi-Access + (GMA) Control Protocol", Work in Progress, Internet-Draft, + draft-zhu-intarea-gma-control-00, 13 October 2021, + <https://datatracker.ietf.org/doc/html/draft-zhu-intarea- + gma-control-00>. + + [IANA] IANA, "Protocol Numbers", + <https://www.iana.org/assignments/protocol-numbers>. + + [IANA1999] IANA, Wayback Machine archive of "Protocol Numbers", + February 1999, + <https://web.archive.org/web/19990203044112/ + http://www.isi.edu:80/in-notes/iana/assignments/protocol- + numbers>. + + [LWIPEP] 3GPP, "Evolved Universal Terrestrial Radio Access + (E-UTRA); LTE-WLAN Radio Level Integration Using Ipsec + Tunnel (LWIP) encapsulation; Protocol specification", + Release 13, 3GPP TS 36.361, July 2020, + <https://portal.3gpp.org/desktopmodules/Specifications/ + SpecificationDetails.aspx?specificationId=3037>. + + [MAMS] Kanugovi, S., Baboescu, F., Zhu, J., and S. Seo, "Multiple + Access Management Services Multi-Access Management + Services (MAMS)", RFC 8743, DOI 10.17487/RFC8743, March + 2020, <https://www.rfc-editor.org/info/rfc8743>. + + [MPIP] Sun, L., Tian, G., Zhu, G., Liu, Y., Shi, H., and D. Dai, + "Multipath IP Routing on End Devices: Motivation, Design, + and Performance", 2017, + <https://eeweb.engineering.nyu.edu/faculty/yongliu/docs/ + MPIP_Tech.pdf>. + + [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, + DOI 10.17487/RFC0791, September 1981, + <https://www.rfc-editor.org/info/rfc791>. + + [RFC8900] Bonica, R., Baker, F., Huston, G., Hinden, R., Troan, O., + and F. Gont, "IP Fragmentation Considered Fragile", + BCP 230, RFC 8900, DOI 10.17487/RFC8900, September 2020, + <https://www.rfc-editor.org/info/rfc8900>. + +Authors' Addresses + + Jing Zhu + Intel + + Email: jing.z.zhu@intel.com + + + Satish Kanugovi + Nokia + + Email: satish.k@nokia.com |