| rfc9188xml2.original.xml | rfc9188.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <!DOCTYPE rfc [ | |||
| <!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | <!ENTITY nbsp " "> | |||
| C.2119.xml"> | <!ENTITY zwsp "​"> | |||
| <!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | <!ENTITY nbhy "‑"> | |||
| C.8174.xml"> | <!ENTITY wj "⁠"> | |||
| <!ENTITY RFC2890 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.2890.xml"> | ||||
| <!ENTITY RFC8743 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.8743.xml"> | ||||
| <!ENTITY RFC0791 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.0791.xml"> | ||||
| <!ENTITY RFC8900 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.8900.xml"> | ||||
| <!ENTITY I-D.ietf-rmcat-gcc SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/ | ||||
| reference.I-D.ietf-rmcat-gcc.xml"> | ||||
| <!ENTITY I-D.zhu-intarea-gma-control SYSTEM "https://xml2rfc.ietf.org/public/rfc | ||||
| /bibxml3/reference.I-D.zhu-intarea-gma-control.xml"> | ||||
| ]> | ]> | |||
| <rfc submissionType="IETF" docName="draft-zhu-intarea-gma-14" category="exp" ipr | ||||
| ="trust200902"> | ||||
| <!-- Generated by id2xml 1.5.0 on 2021-12-03T01:59:19Z --> | ||||
| <?rfc strict="yes"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <?rfc symrefs="yes"?> | ||||
| <?rfc sortrefs="yes"?> | ||||
| <?rfc text-list-symbols="o+*-"?> | ||||
| <?rfc toc="yes"?> | ||||
| <front> | ||||
| <title abbrev="GMA Encapsulation Protocol">Generic Multi-Access (GMA) Enc | ||||
| apsulation Protocol</title> | ||||
| <author initials="J." surname="Zhu" fullname="Jing Zhu"> | ||||
| <organization>Intel</organization> | ||||
| <address><email>jing.z.zhu@intel.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="S." surname="Kanugovi" fullname="Satish Kanugovi"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-zhu-intarea-gma-1 | |||
| <organization>Nokia</organization> | 4" number="9188" submissionType="independent" category="exp" ipr="trust200902" o | |||
| <address><email>satish.k@nokia.com</email> | bsoletes="" updates="" xml:lang="en" symRefs="true" sortRefs="true" | |||
| </address> | tocInclude="true" version="3"> | |||
| </author> | ||||
| <date year="2021" month="December"/> | ||||
| <!-- [rfced] Please insert any keywords (beyond those that appear in the title) | ||||
| for use on https://www.rfc-editor.org/search. --> | ||||
| <keyword>example</keyword> | ||||
| <abstract><t> | <front> | |||
| A device can be simultaneously connected to multiple networks, | <title abbrev="GMA Encapsulation Protocol">Generic Multi-Access (GMA) Encaps | |||
| e.g., Wi-Fi, LTE, 5G, and DSL. It is desirable to seamlessly | ulation Protocol</title> | |||
| combine the connectivity over these networks below the transport | <seriesInfo name="RFC" value="9188"/> | |||
| layer (L4) to improve quality of experience for applications that | <author initials="J." surname="Zhu" fullname="Jing Zhu"> | |||
| do not have built in multi-path capabilities. Such optimization | <organization>Intel</organization> | |||
| requires additional control information, e.g., a sequence number, | <address> | |||
| in each packet. This document presents a new light weight and | <email>jing.z.zhu@intel.com</email> | |||
| flexible encapsulation protocol for this need. The solution has | </address> | |||
| been developed by the authors based on their experiences in | </author> | |||
| multiple standards bodies including the IETF and 3GPP, is not an | <author initials="S." surname="Kanugovi" fullname="Satish Kanugovi"> | |||
| Internet Standard and does not represent the consensus opinion of | <organization>Nokia</organization> | |||
| the IETF. This document will enable other developers to build | <address> | |||
| interoperable implementations in order to experiment with the | <email>satish.k@nokia.com</email> | |||
| protocol.</t> | </address> | |||
| </author> | ||||
| </abstract> | <date year="2022" month="February"/> | |||
| </front> | ||||
| <middle> | <abstract> | |||
| <section title="Introduction" anchor="sect-1"><t> | <t> | |||
| 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.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <middle> | ||||
| <section anchor="sect-1" numbered="true" toc="default"> | ||||
| <name>Introduction</name> | ||||
| <t> | ||||
| A device can be simultaneously connected to multiple networks, | A device can be simultaneously connected to multiple networks, | |||
| e.g., Wi-Fi, LTE, 5G, and DSL. It is desirable to seamlessly | e.g., Wi-Fi, LTE, 5G, and DSL. It is desirable to seamlessly | |||
| combine the connectivity over these networks below the transport | combine the connectivity over these networks below the transport | |||
| layer (L4) to improve quality of experience for applications that | layer (L4) to improve the quality of experience for applications that | |||
| do not have built in multi-path capabilities.</t> | do not have built-in multi-path capabilities.</t> | |||
| <t> | ||||
| <t> | <xref target="Fig1"/> shows the Multi-Access Management Service (MAMS) user-p | |||
| Figure 1 shows the Multi-Access Management Service (MAMS) user-plane | lane | |||
| protocol stack <xref target="MAMS"/>, which has been used in today's | protocol stack <xref target="RFC8743" format="default"/>, which has been used | |||
| multi-access solutions [ATSSS] [LWIPEP] <xref target="GRE1"/> [GRE2]. It | in today's | |||
| multi-access solutions <xref target="ATSSS"/> <xref target="LWIPEP"/> <xref t | ||||
| arget="RFC2890" format="default"/> <xref target="RFC8157"/>. It | ||||
| consists of two layers: convergence and adaptation.</t> | consists of two layers: convergence and adaptation.</t> | |||
| <t> | ||||
| <t> | The convergence layer is responsible for multi-access operations, including | |||
| The convergence layer is responsible for multi-access operations, | multi-link (path) aggregation, splitting/reordering, lossless | |||
| including multi-link (path) aggregation, splitting/reordering, | switching/retransmission, fragmentation, concatenation, etc. It operates on | |||
| lossless switching/retransmission, fragmentation, concatenation, | top of the adaptation layer in the protocol stack. From the perspective of | |||
| etc. It operates on top of the adaptation layer in the protocol | a transmitter, a User Payload (e.g., IP packet) is processed by the | |||
| stack. From the perspective of a transmitter, a User Payload | convergence layer first and then by the adaptation layer before being | |||
| (e.g., IP packet) is processed by the convergence layer first, and | transported over a delivery connection; from the receiver's perspective, an | |||
| then by the adaptation layer before being transported over a | IP packet received over a delivery connection is processed by the | |||
| delivery connection; from the receiver's perspective, an IP packet | adaptation layer first and then by the convergence layer.</t> | |||
| received over a delivery connection is processed by the adaptation | <figure anchor="Fig1"> | |||
| layer first, and then by the convergence layer.</t> | <name>MAMS User-Plane Protocol Stack</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| <figure title="MAMS User-Plane Protocol Stack [MAMS]" anchor="Fig1"><artw | ||||
| ork><![CDATA[ | ||||
| +-----------------------------------------------------+ | +-----------------------------------------------------+ | |||
| | User Payload, e.g., IP Protocol Data Unit (PDU) | | | User Payload, e.g., IP Protocol Data Unit (PDU) | | |||
| +-----------------------------------------------------+ | +-----------------------------------------------------+ | |||
| +-----------------------------------------------------------+ | +-----------------------------------------------------------+ | |||
| | +-----------------------------------------------------+ | | | +-----------------------------------------------------+ | | |||
| | | Multi-Access (MX) Convergence Layer | | | | | Multi-Access (MX) Convergence Layer | | | |||
| | +-----------------------------------------------------+ | | | +-----------------------------------------------------+ | | |||
| | +-----------------------------------------------------+ | | | +-----------------------------------------------------+ | | |||
| | | MX Adaptation | MX Adaptation | MX Adaptation | | | | | MX Adaptation | MX Adaptation | MX Adaptation | | | |||
| | | Layer | Layer | Layer | | | | | Layer | Layer | Layer | | | |||
| | +-----------------+-----------------+-----------------+ | | | +-----------------+-----------------+-----------------+ | | |||
| | | Access #1 IP | Access #2 IP | Access #3 IP | | | | | Access #1 IP | Access #2 IP | Access #3 IP | | | |||
| | +-----------------------------------------------------+ | | | +-----------------------------------------------------+ | | |||
| | MAMS User-Plane Protocol Stack | | | MAMS User-Plane Protocol Stack | | |||
| +-----------------------------------------------------------+ | +-----------------------------------------------------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| GRE (Generic Routing Encapsulation) can be used [LWIPEP] <xref target="GRE1"/ | GRE (Generic Routing Encapsulation) <xref target="LWIPEP"/> <xref | |||
| > | target="RFC2890" format="default"/> <xref target="RFC8157"/> can be used as | |||
| [GRE2] as the encapsulation protocol at the convergence layer to | the encapsulation protocol at the convergence layer to encode additional | |||
| encode additional control information, e.g., Key, Sequence Number. | control information, e.g., key and sequence number. However, there are two | |||
| However, there are two main drawbacks with this approach:</t> | main drawbacks with this approach:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>It is difficult to introduce new control fields because the | |||
| GRE header formats are already defined, and</li> | ||||
| <t>It is difficult to introduce new control fields because the | <li>IP-over-IP tunneling (required for GRE) leads to higher | |||
| GRE header formats are already defined,</t> | overhead especially for small packets.</li> | |||
| </ul> | ||||
| <t>IP-over-IP tunnelling (required for GRE) leads to higher | <t> | |||
| overhead especially for small packet.</t> | 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 | ||||
| </list> | GRE header), which is 80% of a 40-byte TCP ACK packet.</t> | |||
| </t> | ||||
| <t> | ||||
| For example, the overhead of IP-over-IP/GRE tunnelling with both | ||||
| Key and Sequence Number is 32 Bytes (20 Bytes IP header + 12 Bytes | ||||
| GRE header), which is 80% of a 40 Bytes TCP ACK packet.</t> | ||||
| <t> | <t> | |||
| This document presents a light-weight GMA (Generic Multi-Access) | This document presents a lightweight Generic Multi-Access (GMA) | |||
| encapsulation protocol for the convergence layer. It supports three | encapsulation protocol for the convergence layer. It supports three | |||
| encapsulation methods: trailer-based IP encapsulation, header-based IP | encapsulation methods: trailer-based IP encapsulation, header-based IP | |||
| encapsulation, and non-IP encapsulation. Particularly, the IP | encapsulation, and non-IP encapsulation. Particularly, the IP | |||
| encapsulation methods avoid IP-over-IP tunneling overhead (20 Bytes), which | encapsulation methods avoid IP-over-IP tunneling overhead (20 bytes), which | |||
| is 50% of a 40 Bytes TCP ACK packet. Moreover, it introduces new control | is 50% of a 40-byte TCP ACK packet. Moreover, it introduces new control | |||
| fields to support fragmentation and concatenation, which are not available | fields to support fragmentation and concatenation, which are not available | |||
| in GRE-based solutions [LWIPEP] <xref target="GRE1"/> [GRE2].</t> | in GRE-based solutions <xref target="LWIPEP"/> <xref target="RFC2890" | |||
| format="default"/> <xref target="RFC8157"/>.</t> | ||||
| <t> | <t> | |||
| The GMA protocol only operates between endpoints that have been configured | The GMA protocol only operates between endpoints that have been configured | |||
| to use GMA. This configuration can be through any control messages and | to use GMA. This configuration can be through any control messages and | |||
| procedures, including, for example, Multi-Access Management Services <xref | procedures, including, for example, Multi-Access Management Services <xref | |||
| target="MAMS"/>. Moreover, UDP or IPSec tunneling can be used at the | target="RFC8743" format="default"/>. Moreover, UDP or IPsec tunneling can | |||
| adaptation sublayer to protect GMA operation from intermediate nodes.</t> | be used at the adaptation sublayer to protect GMA operation from | |||
| intermediate nodes.</t> | ||||
| <t> | <t> | |||
| The solution described in this document was been developed by the | The solution described in this document was developed by the authors based | |||
| authors based on their experiences in multiple standards bodies | on their experiences in multiple standards bodies including the IETF and | |||
| including the IETF and 3GPP. However, it is not an Internet | 3GPP. However, this document is not an Internet Standard and does not | |||
| Standard and does not represent the consensus opinion of the IETF. | represent the consensus opinion of the IETF. This document presents the | |||
| This document presents the protocol specification to enable | protocol specification to enable experimentation as described in <xref | |||
| experimentation as described in <xref target="sect-1.1"/> and to facilitate | target="sect-1.1" format="default"/> and to facilitate other interoperable | |||
| other interoperable implementations.</t> | implementations.</t> | |||
| <section anchor="sect-1.1" numbered="true" toc="default"> | ||||
| <section title="Scope of Experiment" anchor="sect-1.1"><t> | <name>Scope of Experiment</name> | |||
| <t> | ||||
| The protocol described in this document is an experiment. The | The protocol described in this document is an experiment. The | |||
| objective of the experiment is to determine whether the protocol | objective of the experiment is to determine whether the protocol | |||
| meets the requirements, can be safely used, and has support for | meets the requirements, can be safely used, and has support for | |||
| deployment.</t> | deployment.</t> | |||
| <t> | ||||
| <t> | <xref target="sect-4" format="default"/> describes three possible encapsulati | |||
| <xref target="sect-4"/> describes three possible encapsulation methods that a | on methods that are | |||
| re | ||||
| enabled by this protocol. Part of this experiment is to assess | enabled by this protocol. Part of this experiment is to assess | |||
| whether all three mechanisms are necessary, or whether, for | whether all three mechanisms are necessary or whether, for | |||
| example, all implementations are able to support the main | example, all implementations are able to support the main | |||
| "trailer-based" IP encapsulation method. Similarly, the experiment | "trailer-based" IP encapsulation method. Similarly, the experiment | |||
| will investigate the relative merits of the IP and non-IP | will investigate the relative merits of the IP and non-IP | |||
| encapsulation methods.</t> | encapsulation methods.</t> | |||
| <t> | ||||
| <t> | It is expected that this protocol experiment can be conducted on the | |||
| It is expected that this protocol experiment can be conducted on | Internet since the GMA packets are identified by an IP protocol number and | |||
| the Internet since the GMA packets are identified by an IP | the protocol is intended for single-hop propagation; devices should not be | |||
| protocol number and the protocol is intended for single hop | forwarding packets, and if they do, they will not need to examine the payload | |||
| propagation: devices should not be forwarding packet and if they | , | |||
| do they will not need to examine the payload, while destination | while destination systems that do not support this protocol should not | |||
| systems that do not support this protocol should not receive such | receive such packets and will handle them as unknown payloads according to | |||
| packets and will handle them as unknown payloads according to | normal IP processing. Thus, experimentation is conducted between consenting | |||
| normal IP processing. Thus, experimentation is conducted between | end systems that have been mutually configured to participate in the | |||
| consenting end systems that have been mutually configured to | experiment as described in <xref target="sect-7" format="default"/>.</t> | |||
| participate in the experiment as described in <xref target="sect-7"/>.</t> | <t> | |||
| Note that this experiment "reuses" the IP protocol identifier 114 | ||||
| <t> | as described in <xref target="sect-4.4" format="default"/>. Part of this expe | |||
| Note that this experiment "re-uses" the IP protocol identifier 114 | riment is to assess | |||
| as described in <xref target="sect-4.4"/>. Part of this experiment is to asse | ||||
| ss | ||||
| the safety of doing this. The experiment should consider the | the safety of doing this. The experiment should consider the | |||
| following safety mechanisms:</t> | following safety mechanisms:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>GMA endpoints <bcp14>SHOULD</bcp14> detect non-GMA IP packets that | |||
| <t>GMA endpoints SHOULD detect non-GMA IP packets that also use | also use | |||
| 114 and log an error to report the situation (although such | 114 and log an error to report the situation (although such | |||
| error logging MUST be subject to rate limits).</t> | error logging <bcp14>MUST</bcp14> be subject to rate limits).</li> | |||
| <t>GMA endpoints SHOULD stop using 114 and switch to non-IP | ||||
| (UDP) based encapsulation (Sec 4.3, Figure 7) after detecting | ||||
| any non-GMA usage of 114.</t> | ||||
| </list> | <li>GMA endpoints <bcp14>SHOULD</bcp14> stop using 114 and switch to non-IP enca | |||
| </t> | psulation, | |||
| i.e., UDP encapsulation (<xref target="Fig7"/>), after detecting any non-GMA usa | ||||
| ge of 114. | ||||
| </li> | ||||
| <t> | </ul> | |||
| The experiment SHOULD use packet tracing tool, e.g., WireShark, | <t> | |||
| TCPDUMP, to monitor both ingress and egress traffic at GMA | The experiment <bcp14>SHOULD</bcp14> 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.</t> | endpoints and ensure the above safety mechanisms are implemented.</t> | |||
| <t> | ||||
| <t> | Path quality measurements (one-way delay, loss, etc.) and congestion | |||
| Path quality measurements (one-way-delay, loss, etc.) and | detection are performed by the receiver based on the GMA control fields, | |||
| congestion detection are performed by receiver based on the GMA | e.g., Sequence Number, Timestamp, etc. The receiver will then dynamically | |||
| control fields, e.g., sequence number, timestamp, etc. Receiver | control how to split or steer traffic over multiple delivery connections | |||
| will then dynamically control how to split or steer traffic over | accordingly. The GMA control protocol <xref | |||
| multiple delivery connections accordingly. GMA control protocol | target="I-D.zhu-intarea-gma-control" format="default"/> <bcp14>MAY</bcp14> | |||
| <xref target="I-D.zhu-intarea-gma-control"/> MAY be used for signaling betwee | be used for signaling between GMA endpoints. Another objective of the | |||
| n GMA endpoints. Another | experiment is to evaluate the usage of various receiver-based algorithms | |||
| objective of the experiment is to evaluate the usage of various | <xref target="GCC" format="default"/> <xref target="MPIP"/> | |||
| receiver-based algorithms <xref target="I-D.ietf-rmcat-gcc"/> [MPIP] in multi | in multi-path traffic management and the impact on the End-to-End (E2E) | |||
| -path traffic | performance (throughput, delay, etc.) of higher-layer (transport) | |||
| management, and the impact on the e2e performance (throughput, | protocols, e.g., TCP, QUIC, WebRTC, etc.</t> | |||
| delay, etc.) of higher layer (transport) protocols, e.g., TCP, | <t> | |||
| QUIC, WebRTC, etc.</t> | ||||
| <t> | ||||
| The authors will continually assess the progress of this | The authors will continually assess the progress of this | |||
| experiment and encourage other implementers to contact them to | experiment and encourage other implementers to contact them to | |||
| report the status of their implementations and their experiences | report the status of their implementations and their experiences | |||
| with the protocol.</t> | with the protocol.</t> | |||
| </section> | ||||
| </section> | </section> | |||
| <section anchor="sect-2" numbered="true" toc="default"> | ||||
| </section> | <name>Conventions Used in This Document</name> | |||
| <t> | ||||
| <section title="Conventions used in this document" anchor="sect-2"><t> | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, a | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are | |||
| nd only when, they | to be interpreted as described in BCP 14 <xref target="RFC2119"/> | |||
| appear in all capitals, as shown here.</t> | <xref target="RFC8174"/> when, and only when, they appear in all capitals, | |||
| as shown here. | ||||
| </section> | </t> | |||
| </section> | ||||
| <section title="Use Case" anchor="sect-3"><t> | <section anchor="sect-3" numbered="true" toc="default"> | |||
| As shown in Figure 2, a client device (e.g., Smartphone, Laptop, | <name>Use Case</name> | |||
| etc.) may connect to the Internet via both Wi-Fi and LTE | <t> | |||
| connections, one of which (e.g., LTE) may operate as the anchor | As shown in <xref target="Fig2"/>, a client device (e.g., smartphone, | |||
| connection, and the other (e.g., Wi-Fi) may operate as the | laptop, etc.) may connect to the Internet via both Wi-Fi and LTE | |||
| delivery connection. The anchor connection provides the IP address | connections, one of which (e.g., LTE) may operate as the anchor connection, | |||
| and connectivity for end-to-end Internet access, and the delivery | and the other (e.g., Wi-Fi) may operate as the delivery connection. The | |||
| connection provides an additional path between client and Multi-Access | anchor connection provides the IP address and connectivity for end-to-end | |||
| Gateway for multi-access optimizations.</t> | Internet access, and the delivery connection provides an additional path | |||
| between the client and Multi-Access Gateway for multi-access optimizations.</ | ||||
| <figure title="GMA-based Multi-Access Aggregation" anchor="Fig2"> | t> | |||
| <artwork><![CDATA[ | <figure anchor="Fig2"> | |||
| <name>GMA-Based Multi-Access Aggregation</name> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| Multi-Access Aggregation | Multi-Access Aggregation | |||
| +---+ +---+ | +---+ +---+ | |||
| | |A|--- LTE Connection -----|C| | | | |A|--- LTE Connection -----|C| | | |||
| |U|-| |-|S| Internet | |U|-| |-|S| Internet | |||
| | |B|--- Wi-Fi Connection ---|D| | | | |B|--- Wi-Fi Connection ---|D| | | |||
| +---+ +---+ | +---+ +---+ | |||
| Client Multi-Access Gateway | client Multi-Access Gateway | |||
| ]]></artwork> | ||||
| A: The adaptation layer endpoint of the LTE connection | </figure> | |||
| resides in the client | <dl indent="4"> | |||
| <dt>A:</dt><dd> The adaptation-layer endpoint of the LTE connection | ||||
| resides in the client.</dd> | ||||
| B: The adaptation layer endpoint of the Wi-Fi connection | <dt>B:</dt><dd> The adaptation-layer endpoint of the Wi-Fi connection | |||
| resides in the client | resides in the client.</dd> | |||
| C: The adaptation layer endpoint of the LTE connection | <dt>C:</dt><dd> The adaptation-layer endpoint of the LTE connection | |||
| resides in the Multi-Access Gateway, aka N-MADP (Network | resides in the Multi-Access Gateway, aka N-MADP (Network | |||
| Multi-Access Data Proxy) in [MAMS] | Multi-Access Data Proxy) in <xref target="RFC8743"/>.</dd> | |||
| 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 | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| <t> | <dt>D:</dt><dd> The adaptation-layer endpoint of the Wi-Fi connection | |||
| For example, per-packet aggregation allows a single IP flow to use | resides in the Multi-Access Gateway.</dd> | |||
| the combined bandwidth of the two connections. In another example, | ||||
| packets lost due to a temporarily 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.</t> | ||||
| <t> | <dt>U:</dt><dd> The convergence-layer endpoint resides in the client.</dd | |||
| 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.</t> | ||||
| </section> | <dt>S:</dt><dd> The convergence-layer endpoint resides in the Multi-Acces | |||
| s | ||||
| Gateway.</dd> | ||||
| </dl> | ||||
| <t> | ||||
| 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.</t> | ||||
| <t> | ||||
| 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.</t> | ||||
| </section> | ||||
| <section title="GMA Encapsulation Methods" anchor="sect-4"><t> | <section anchor="sect-4" numbered="true" toc="default"> | |||
| <name>GMA Encapsulation Methods</name> | ||||
| <t> | ||||
| The GMA encapsulation protocol supports the following three | The GMA encapsulation protocol supports the following three | |||
| methods:</t> | methods:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>Trailer-based IP Encapsulation (<xref target="sect-4.1"/>)</li> | |||
| <li>Header-based IP Encapsulation (<xref target="sect-4.2"/>)</li> | ||||
| <t>Trailer-based IP Encapsulation (4.1)</t> | <li>Header-based non-IP Encapsulation (<xref target="sect-4.3"/>)</li> | |||
| </ul> | ||||
| <t>Header-based IP Encapsulation (4.2)</t> | <t> | |||
| Non-IP encapsulation <bcp14>MUST</bcp14> be used if the original IP packet is | ||||
| <t>(Header-based) non-IP Encapsulation (4.3)</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| Non-IP encapsulation MUST be used if the original IP packet is | ||||
| IPv6.</t> | IPv6.</t> | |||
| <t> | ||||
| <t> | Trailer-based IP encapsulation <bcp14>MUST</bcp14> be used if it is supported | |||
| Trailer-based IP encapsulation MUST be used if it is supported by | by | |||
| GMA endpoints and the original IP packet is IPv4.</t> | GMA endpoints and the original IP packet is IPv4.</t> | |||
| <t> | ||||
| <t> | Header-based encapsulation <bcp14>MUST</bcp14> be used if the trailer-based | |||
| Header-based encapsulation MUST be used if the trailer-based | method is not supported by either the client or Multi-Access Gateway. | |||
| method is not supported by either Client or Multi-Access Gateway. | In this case, if the adaptation layer, e.g., UDP tunneling, | |||
| In this case, if the adaptation layer, e.g., UDP tunnelling, | supports non-IP packet format, non-IP encapsulation <bcp14>MUST</bcp14> be us | |||
| supports non-IP packet format, non-IP encapsulation MUST be used; | ed; | |||
| otherwise, header-based IP encapsulation MUST be used.</t> | otherwise, header-based IP encapsulation <bcp14>MUST</bcp14> be used.</t> | |||
| <t> | ||||
| <t> | If non-IP encapsulation is configured, a GMA header <bcp14>MUST</bcp14> be | |||
| If non-IP encapsulation is configured, a GMA header MUST be | present in every packet. In comparison, if IP encapsulation is configured, | |||
| present in every packet. In comparison, if IP encapsulation is | a GMA header or trailer may be added dynamically on a per-packet basis, and | |||
| configured, a GMA header or trailer may be added dynamically on | it indicates the presence of a GMA header (or trailer) to set the protocol | |||
| per-packet basis, and it indicates the presence of GMA header (or | type of the GMA PDU to "114" (see <xref target="sect-4.4" | |||
| trailer) to set the protocol type of the GMA PDU to "114" (see | format="default"/>).</t> | |||
| <xref target="sect-4.4"/>).</t> | <t> | |||
| The GMA endpoints <bcp14>MAY</bcp14> configure the GMA encapsulation method t | ||||
| <t> | hrough | |||
| The GMA endpoints MAY configure the GMA encapsulation method through | control signaling or pre-configuration. For example, the "MX UP Setup | |||
| control signalling or pre-configuration. For example, the "MX UP Setup | ||||
| Configuration Request" message as specified in Multi-Access Management | Configuration Request" message as specified in Multi-Access Management | |||
| Service <xref target="MAMS"/> includes "MX Convergence Method Parameters", | Service <xref target="RFC8743" format="default"/> includes "MX Convergence Me thod Parameters", | |||
| which provides the list of parameters to configure the convergence layer, | which provides the list of parameters to configure the convergence layer, | |||
| and can be extended to indicate the GMA encapsulation method.</t> | and can be extended to indicate the GMA encapsulation method.</t> | |||
| <t> | ||||
| <t> | GMA endpoint <bcp14>MUST</bcp14> discard a received packet and <bcp14>MAY</bc | |||
| GMA endpoint MUST discard a received packet and MAY log an error | p14> log an error | |||
| to report the situation (although such error logging MUST be | to report the situation (although such error logging <bcp14>MUST</bcp14> be | |||
| subject to rate limits) under any of the following conditions:</t> | subject to rate limits) under any of the following conditions:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>The GMA version number in the GMA header (or trailer) is not | |||
| understood or supported by the GMA endpoint.</li> | ||||
| <t>the GMA version number in the GMA header (or trailer) is not | <li>A flag bit in the GMA header (or trailer) not understood or | |||
| understood or supported by the GMA endpoint</t> | supported by the GMA endpoint is set to "1".</li> | |||
| </ul> | ||||
| <t>a Flag bit in the GMA header (or trailer) not understood or | <section anchor="sect-4.1" numbered="true" toc="default"> | |||
| supported by the GMA endpoint is set to "1"</t> | <name>Trailer-Based IP Encapsulation</name> | |||
| <figure anchor="Fig3"> | ||||
| </list> | <name>GMA PDU Format with Trailer-based IP Encapsulation</name> | |||
| </t> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| <section title="Trailer-based IP Encapsulation" anchor="sect-4.1"> | ||||
| <figure title="GMA PDU Format with Trailer-based IP Encapsulation" anch | ||||
| or="Fig3"> | ||||
| <artwork><![CDATA[ | ||||
| |<---------------------GMA PDU ----------------------->| | |<---------------------GMA PDU ----------------------->| | |||
| +------------------------------------------------------+ | +------------------------------------------------------+ | |||
| | IP hdr | IP payload | GMA Trailer | | | IP hdr | IP payload | GMA Trailer | | |||
| +------------------------------------------------------+ | +------------------------------------------------------+ | |||
| |<------- GMA SDU (user payload)-------->| | |<------- GMA SDU (user payload)-------->| | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| This method SHALL NOT be used if the original IP packet (GMA SDU) | This method <bcp14>SHALL NOT</bcp14> be used if the original IP packet (GMA | |||
| is IPv6.</t> | service data unit (GMA SDU)) is IPv6.</t> | |||
| <t> | ||||
| <t> | <xref target="Fig3"/> shows the trailer-based IP encapsulation GMA protocol | |||
| Figure 3 shows the trailer-based IP encapsulation GMA PDU | data unit (GMA PDU) format. A (GMA) PDU may carry one or multiple IP | |||
| (protocol data unit) format. A (GMA) PDU may carry one or multiple | packets, aka (GMA) SDUs, in the payload, or a fragment of the SDU.</t> | |||
| IP packets, aka (GMA) SDUs (service data unit), in the payload, or | <t> | |||
| a fragment of the SDU.</t> | The protocol type field in the IP header of the GMA PDU <bcp14>MUST</bcp14> b | |||
| e | ||||
| <t> | changed to 114 (Any 0-Hop Protocol) (see <xref target="sect-4.4" format="defa | |||
| The Protocol Type field in the IP header of the GMA PDU MUST be | ult"/>) to indicate | |||
| changed to 114 (Any 0-Hop Protocol) (see <xref target="sect-4.4"/>) to indica | ||||
| te | ||||
| the presence of the GMA trailer.</t> | the presence of the GMA trailer.</t> | |||
| <t> | ||||
| <t> | The following three IP header fields <bcp14>MUST</bcp14> be changed:</t> | |||
| The following three IP header fields MUST be changed:</t> | <dl> | |||
| <dt>IP Length:</dt><dd> Add the length of "GMA Trailer" to the length | ||||
| <t><list style="symbols"> | of the | |||
| original IP packet.</dd> | ||||
| <t>IP Length: add the length of "GMA Trailer" to the length of the | <dt>Time To Live (TTL):</dt><dd> Set to "1".</dd> | |||
| original IP packet</t> | <dt>IP checksum:</dt><dd> Recalculate after changing "protocol | |||
| type", "TTL", and "IP Length".</dd> | ||||
| <t>Time To Live (TTL): set to "1"</t> | </dl> | |||
| <t> | ||||
| <t>IP checksum: recalculate after changing "Protocol Type", "TTL" | The GMA (Generic Multi-Access) trailer <bcp14>MUST</bcp14> consist of two | |||
| and "IP Length"</t> | mandatory fields (the last 3 bytes): Next Header and Flags. | |||
| </list> | ||||
| </t> | </t> | |||
| <t> | ||||
| This is defined as follows:</t> | ||||
| <t> | <dl> | |||
| The GMA (Generic Multi-Access) trailer MUST consist of two | <dt>Next Header (1 byte):</dt><dd> This is the IP protocol type of the | |||
| mandatory fields (the last 3 bytes): Next Header and Flags, | (first) SDU | |||
| defined as follows:</t> | in a PDU; it stores the value before it was overwritten to | |||
| 114.</dd> | ||||
| <t><list style="symbols"> | ||||
| <t>Next Header (1 Byte): the IP protocol type of the (first) SDU | ||||
| in a PDU, and it stores the value before it was overwritten to | ||||
| 114.</t> | ||||
| <t>Flags (2 Bytes): Bit 0 is the most significant bit (MSB), and | ||||
| Bit 15 is the least significant bit (LSB) | ||||
| <list style="symbols"> | ||||
| <t>Checksum Present (bit 0): If the Checksum Present bit is set | ||||
| to 1, then the Checksum field is present</t> | ||||
| <t>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</t> | ||||
| <t>Connection ID Present (bit 2): If the Connection ID Present | ||||
| bit is set to 1, then the Connection ID field is present</t> | ||||
| <t>Flow ID Present (bit 3): If the Flow ID Present bit is set | ||||
| to 1, then the Flow ID field is present</t> | ||||
| <t>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</t> | ||||
| <t>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</t> | ||||
| <t>Flow SN Present (bit 6): If the Flow SN Present bit is set | ||||
| to 1, then the Sequence Number field is present</t> | ||||
| <t>Timestamp Present (bit 7): If the Timestamp Present bit is | ||||
| set to 1, then the Timestamp field is present</t> | ||||
| <t>TTL Present (bit 8): If the TTL Present bit is set to 1, | ||||
| then the TTL field is present</t> | ||||
| <t>Reserved (bit 9-12): set to "0" and ignored on receipt</t> | ||||
| <t>Version (bit 13~15): GMA version number, set to 0 for the | ||||
| GMA encapsulation protocol specified in this document.</t> | ||||
| </list> | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | <dt>Flags (2 bytes):</dt><dd><t> Bit 0 is the most significant bit ( | |||
| MSB), and | ||||
| bit 15 is the least significant bit (LSB). | ||||
| </t> | ||||
| <dl> | ||||
| <dt>Checksum Present (bit 0):</dt><dd> If the Checksum Present | ||||
| bit is set to 1, then the Checksum field is present.</dd> | ||||
| <dt>Concatenation Present (bit 1):</dt><dd> If the Concatenation | ||||
| Present bit is set to 1, then the PDU carries multiple SDUs, and | ||||
| the First SDU Length field is present.</dd> | ||||
| <dt>Connection ID Present (bit 2):</dt><dd> If the Connection ID | ||||
| Present bit is set to 1, then the Connection ID field is | ||||
| present.</dd> | ||||
| <dt>Flow ID Present (bit 3):</dt><dd> If the Flow ID Present bit | ||||
| is set to 1, then the Flow ID field is present.</dd> | ||||
| <dt>Fragmentation Present (bit 4):</dt><dd>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.</dd> | ||||
| <dt>Delivery SN Present (bit 5):</dt><dd> If the Delivery SN | ||||
| (Sequence Number) Present bit is set to 1, then the Delivery SN | ||||
| field is present and contains the valid information.</dd> | ||||
| <dt>Flow SN Present (bit 6):</dt><dd> If the Flow SN Present bit | ||||
| is set to 1, then the Sequence Number field is present.</dd> | ||||
| <dt>Timestamp Present (bit 7):</dt><dd> If the Timestamp Present | ||||
| bit is set to 1, then the Timestamp field is present.</dd> | ||||
| <dt>TTL Present (bit 8):</dt><dd> If the TTL Present bit is set | ||||
| to 1, then the TTL field is present.</dd> | ||||
| <dt>Reserved (bit 9-12):</dt><dd> This is set to "0" and ignored | ||||
| on receipt.</dd> | ||||
| <dt>Version (bit 13~15):</dt><dd> This is the GMA version | ||||
| number; it is set to 0 for the GMA encapsulation protocol specifie | ||||
| d in | ||||
| this document.</dd> | ||||
| </dl> | ||||
| </dd> | ||||
| </dl> | ||||
| <t> | ||||
| The Flags field is at the end of the PDU, and the Next Header field is the | 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 | second last. The receiver <bcp14>SHOULD</bcp14> first decode the Flags | |||
| the length of the GMA trailer, and then decode each optional field | field to determine the length of the GMA trailer and then decode each | |||
| accordingly. The GMA (Generic Multi-Access) trailer MAY consist of the | optional field accordingly. The Generic Multi-Access (GMA) trailer | |||
| following optional fields:</t> | <bcp14>MAY</bcp14> consist of the following optional fields:</t> | |||
| <dl> | ||||
| <t><list style="symbols"><t>Checksum (1 Byte): to contain the (one's comp | ||||
| lement) checksum | ||||
| sum of all the 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 one.</t> | ||||
| <t>First SDU Length (2 Bytes): the length of the first IP packet | <dt>Checksum (1 byte):</dt><dd> This contains the (one's | |||
| in the PDU, only included if a PDU contains multiple IP | complement) checksum sum of all 8 bits in the trailer. For purposes | |||
| packets. This field is present only if the Concatenation | of computing the checksum, the value of the Checksum field is | |||
| Present bit is set to one.</t> | zero. This field is present only if the Checksum Present bit is set | |||
| to 1.</dd> | ||||
| <dt>First SDU Length (2 bytes):</dt><dd> 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.</dd> | ||||
| <t>Connection ID (1 Byte): an unsigned integer to identify the | <dt>Connection ID (1 byte):</dt><dd><t> This contains an unsigned in teger to identify the | |||
| anchor and delivery connection of the GMA PDU. This field is | anchor and delivery connection of the GMA PDU. This field is | |||
| present only if the Connection ID Present bit is set to one. | present only if the Connection ID Present bit is set to 1. | |||
| </t> | ||||
| <list style="symbols"> | ||||
| <t>Anchor Connection ID (MSB 4 Bits): an unsigned integer to | ||||
| identify the anchor connection</t> | ||||
| <t>Delivery Connection ID (LSB 4 Bits): an unsigned integer to | ||||
| identify the delivery connection</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Flow ID (1 Byte): 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 one.</t> | ||||
| <t>Fragmentation Control (FC) (1 Byte): to provide necessary | ||||
| information for re-assembly, only needed if a PDU carries | ||||
| fragments. This field is present only if the Fragmentation | ||||
| Present bit is set to one. Please refer to section 5 for its | ||||
| detailed format and usage.</t> | ||||
| <t>Delivery SN (1 Byte): 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 one.</t> | ||||
| <t>Flow SN (3 Bytes): 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 one.</t> | ||||
| <t>Timestamp (4 Bytes): to contain 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 one.</t> | ||||
| <t>TTL (1 Byte): to contain 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 one.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | <dl> | |||
| Figure 4 shows the GMA trailer format with all the fields present, | <dt>Anchor Connection ID (MSB 4 bits):</dt><dd> This contains an | |||
| and the order of the GMA control fields SHALL follow the bit order | unsigned integer to identify the anchor connection.</dd> | |||
| <dt>Delivery Connection ID (LSB 4 bits):</dt><dd> This contains | ||||
| an unsigned integer to identify the delivery connection.</dd> | ||||
| </dl> | ||||
| </dd> | ||||
| <dt>Flow ID (1 byte):</dt><dd> This contains an unsigned integer to id | ||||
| entify the | ||||
| IP flow that a PDU belongs to, for example Data Radio Bearer (DRB) | ||||
| ID <xref target="LWIPEP"/> for a cellular (e.g., LTE) | ||||
| connection. This field is present only if the Flow ID Present bit is | ||||
| set to 1.</dd> | ||||
| <dt>Fragmentation Control (FC) (1 byte):</dt><dd> 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 <xref target="sect-5"/> for its | ||||
| detailed format and usage.</dd> | ||||
| <dt>Delivery SN (1 byte):</dt><dd> This contains an auto-incremented i | ||||
| nteger 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.</dd> | ||||
| <dt>Flow SN (3 bytes):</dt><dd> 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 | ||||
| <bcp14>SHALL</bcp14> be generated per flow. This field is present | ||||
| only if the Flow SN Present bit is set to 1.</dd> | ||||
| <dt>Timestamp (4 bytes):</dt><dd> 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.</dd> | ||||
| <dt>TTL (1 byte):</dt><dd> 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.</dd> | ||||
| </dl> | ||||
| <t> | ||||
| <xref target="Fig4"/> shows the GMA trailer format with all the fields presen | ||||
| t, | ||||
| and the order of the GMA control fields <bcp14>SHALL</bcp14> follow the bit o | ||||
| rder | ||||
| in the Flags field. Note that the bits in the Flags field are | in the Flags field. Note that the bits in the Flags field are | |||
| ordered with the first bit transmitted being bit 0 (MSB). All | ordered with the first bit transmitted being bit 0 (MSB). All | |||
| fields are transmitted in regular network byte order and appear in | fields are transmitted in regular network byte order and appear in | |||
| reverse order to their corresponding flag bits. If a flag bit is | reverse order to their corresponding flag bits. If a flag bit is | |||
| clear, the corresponding optional field is absent.</t> | clear, the corresponding optional field is absent.</t> | |||
| <t> | ||||
| <t> | For example, bit 0 (the MSB) of the Flags field is the Checksum Present | |||
| For example, Bit 0 (the MSB) of the Flags field is the Checksum | bit, and the Checksum field is the last in the trailer with the exception | |||
| Present bit, and the Checksum field is the last in the trailer | of the two mandatory fields. Bit 1 is the Concatenation Present bit, and | |||
| except of the two mandatory fields. Bit 1 is the Concatenation | the FSL field is the second last.</t> | |||
| present bit, and the FSL field is the second last.</t> | <figure anchor="Fig4"> | |||
| <name>GMA Trailer Format with All Optional Fields Present</name> | ||||
| <figure title="GMA Trailer Format with all Optional Fields Present" ancho | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| r="Fig4"><artwork><![CDATA[ | 0 1 2 3 | |||
| 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 | |||
| 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 | | TTL | Timestamp | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flow SN | | | Flow SN | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Delivery SN | FC | Flow ID | Connection ID | | | Delivery SN | FC | Flow ID | Connection ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | First SDU Length (FSL) | Checksum | Next Header | | | First SDU Length (FSL) | Checksum | Next Header | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flags | | | Flags | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="sect-4.2" numbered="true" toc="default"> | ||||
| <section title="Header-based IP Encapsulation" anchor="sect-4.2"><t> | <name>Header-Based IP Encapsulation</name> | |||
| This method SHALL NOT be used if the original IP packet (GMA SDU) | <t> | |||
| This method <bcp14>SHALL NOT</bcp14> be used if the original IP packet (GMA S | ||||
| DU) | ||||
| is IPv6.</t> | is IPv6.</t> | |||
| <t> | ||||
| <t> | <xref target="Fig5"/> shows the header-based IP encapsulation format. Here, t | |||
| Figure 5 shows the header-based IP encapsulation format. Here, the | he | |||
| GMA header is inserted right after the IP header of the GMA SDU, | 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 | and the IP header fields of the GMA PDU <bcp14>MUST</bcp14> be changed the sa | |||
| way as in trailered-based IP encapsulation.</t> | me | |||
| way as in trailer-based IP encapsulation.</t> | ||||
| <figure title="GMA PDU Format with Header-based IP Encapsulation" anchor= | <figure anchor="Fig5"> | |||
| "Fig5"><artwork><![CDATA[ | <name>GMA PDU Format with Header-Based IP Encapsulation</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| +-----------------------------------------------+ | +-----------------------------------------------+ | |||
| |IP hdr | GMA Header | IP payload | | |IP hdr | GMA Header | IP payload | | |||
| +-----------------------------------------------+ | +-----------------------------------------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| Figure 6 shows the GMA header format. In comparison to GMA | <xref target="Fig6"/> shows the GMA header format. In comparison to the GMA | |||
| trailer, the only difference is that the Flags field is now in the | trailer, the only difference is that the Flags field is now in the front so | |||
| front so that the Receiver can first decode the Flags field to | that the receiver can first decode the Flags field to determine the GMA | |||
| determine the GMA header length.</t> | header length.</t> | |||
| <t> | ||||
| <t> | The "TTL" field <bcp14>MUST</bcp14> be included and the "TTL" bit in the | |||
| "TTL" field MUST be included and the "TTL" bit in the GMA header | GMA header (or Trailer) <bcp14>MUST</bcp14> be set to 1 if (trailer- or | |||
| (or Trailer) MUST be set to 1 if (Trailer or Header based) IP | header-based) IP encapsulation is used.</t> | |||
| Encapsulation is used.</t> | <figure anchor="Fig6"> | |||
| <name>GMA Header Format</name> | ||||
| <figure title="GMA Header Format" anchor="Fig6"><artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| +------------------------------------------------------+ | +------------------------------------------------------+ | |||
| | Flags | other fields (TTL, Timestamp, Flow SN, etc.) | | | Flags | other fields (TTL, Timestamp, Flow SN, etc.) | | |||
| +------------------------------------------------------+ | +------------------------------------------------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section title="(Header-based) non-IP Encapsulation" anchor="sect-4.3"><t | <section anchor="sect-4.3" numbered="true" toc="default"> | |||
| > | ||||
| Figure 7 shows the header-based non-IP encapsulation format. Here, | ||||
| "UDP Tunnelling" is configured at the MX adaptation layer. The | ||||
| ports for "UDP Tunnelling" at Client are chosen from the Dynamic | ||||
| Port range, and the ports for "UDP Tunnelling" at Multi-Access | ||||
| Gateway are configured and provided to Client through additional | ||||
| control messages, e.g., <xref target="MAMS"/>.</t> | ||||
| <t> | <name>Header-Based Non-IP Encapsulation</name> | |||
| "TTL", "FSL", and "Next Header" are no longer needed, and MUST not | <t> | |||
| <xref target="Fig7"/> shows the header-based non-IP encapsulation format. Her | ||||
| e, | ||||
| "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., <xref target="RFC8743" format="default"/>.</t> | ||||
| <t> | ||||
| "TTL", "FSL", and "Next Header" are no longer needed and <bcp14>MUST</bcp14> | ||||
| not | ||||
| be included. Moreover, the IP header fields of the GMA SDU remain | be included. Moreover, the IP header fields of the GMA SDU remain | |||
| unchanged.</t> | unchanged.</t> | |||
| <figure anchor="Fig7"> | ||||
| <figure title="GMA PDU Format with Non-IP Encapsulation" anchor="Fig7"><a | <name>GMA PDU Format with Non-IP Encapsulation</name> | |||
| rtwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| +-------------------------------------------------------------+ | +-------------------------------------------------------------+ | |||
| | IP hdr | UDP hdr | GMA Header | IP hdr | IP payload | | | IP hdr | UDP hdr | GMA Header | IP hdr | IP payload | | |||
| +-------------------------------------------------------------+ | +-------------------------------------------------------------+ | |||
| |<------- GMA SDU------------>| | |<------- GMA SDU------------>| | |||
| |<------------------- GMA PDU------------>| | |<------------------- GMA PDU------------>| | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor="sect-4.4" numbered="true" toc="default"> | ||||
| <section title="IP Protocol Identifier" anchor="sect-4.4"><t> | <name>IP Protocol Identifier</name> | |||
| As described in <xref target="sect-4.1"/>, IP encapsulated GMA PDUs are | <t> | |||
| indicated using the IP Protocol Type 114. This is designated and | As described in <xref target="sect-4.1" format="default"/>, IP-encapsulated G | |||
| recorded by IANA <xref target="IANA"/> to indicate "any 0-Hop Protocol". No | MA PDUs are | |||
| indicated using the IP protocol type 114. This is designated and | ||||
| recorded by IANA <xref target="IANA" format="default"/> to indicate "any 0-Ho | ||||
| p Protocol". No | ||||
| reference is given in the IANA registry for the definition of this | reference is given in the IANA registry for the definition of this | |||
| Protocol Type, and IANA has no record of why the assignment was | protocol type, and IANA has no record of why the assignment was | |||
| made or how it is used, although it was probably assigned before | made or how it is used, although it was probably assigned before | |||
| 1999 <xref target="IANA1999"/>.</t> | 1999 <xref target="IANA1999" format="default"/>.</t> | |||
| <t> | ||||
| <t> | There is some risk associated with "reusing" protocol type 114 | |||
| There is some risk associated with "re-using" Protocol Type 114 | ||||
| because there may be implementations of other protocols also using | because there may be implementations of other protocols also using | |||
| this Protocol Type. However, because the protocol described in | this protocol type. However, because the protocol described in | |||
| this document is used only between adjacent devices specifically | this document is used only between adjacent devices specifically | |||
| configured for this purpose, the use of Protocol Type 114 should | configured for this purpose, the use of protocol type 114 should | |||
| be safe.</t> | be safe.</t> | |||
| <t> | ||||
| <t> | As described in <xref target="sect-1.1" format="default"/>, one of the purpos | |||
| As described in <xref target="sect-1.1"/>, one of the purposes of the experim | es of the experiment | |||
| ent | ||||
| described in this document is to verify the safety of using this | described in this document is to verify the safety of using this | |||
| Protocol Type. Deployments should be aware of the risk of a clash | protocol type. Deployments should be aware of the risk of a clash | |||
| with other uses of this Protocol Type.</t> | with other uses of this protocol type.</t> | |||
| </section> | ||||
| </section> | </section> | |||
| <section anchor="sect-5" numbered="true" toc="default"> | ||||
| </section> | <name>Fragmentation</name> | |||
| <t> | ||||
| <section title="Fragmentation" anchor="sect-5"><t> | If the MTU size of the anchor connection (for GMA SDU) is configured such | |||
| If the MTU size of the anchor connection (for GMA SDU) is | that the corresponding GMA PDU length adding the GMA header (or trailer) | |||
| configured such that the corresponding GMA PDU length adding GMA | and other overhead (UDP tunneling) <bcp14>MAY</bcp14> exceed the MTU of a | |||
| header (or trailer) and other overhead (UDP tunneling) MAY exceed | delivery connection, GMA endpoints <bcp14>MUST</bcp14> be configured to | |||
| the MTU of a delivery connection, GMA endpoints MUST be configured | support fragmentation through additional control messages <xref | |||
| to support fragmentation through additional control messages | target="RFC8743" format="default"/>.</t> | |||
| <xref target="MAMS"/>.</t> | <t> | |||
| <t> | ||||
| The fragmentation procedure at the convergence sublayer is similar | The fragmentation procedure at the convergence sublayer is similar | |||
| to IP fragmentation <xref target="RFC0791"/> in principle, but with the follo wing | to IP fragmentation <xref target="RFC0791" format="default"/> in principle, b ut with the following | |||
| two differences for less overhead:</t> | two differences for less overhead:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>The fragment offset field is expressed in number of fragments.</li> | |||
| <li>The maximum number of fragments per SDU is 2<sup>7</sup> (=128).</li | ||||
| <t>The fragment offset field is expressed in number of fragments</t> | > | |||
| </ul> | ||||
| <t>The maximum number of fragments per SDU is 2^7 (=128)</t> | <t> | |||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| The Fragmentation Control (FC) field in the GMA trailer (or | The Fragmentation Control (FC) field in the GMA trailer (or | |||
| header) contains the following bits:</t> | header) contains the following bits:</t> | |||
| <t><list style="symbols"> | <dl> | |||
| <dt>Bit 7:</dt><dd> a More Fragment (MF) flag to indicate if the fragmen | ||||
| <t>Bit #7: a More Fragment (MF) flag to indicate if the fragment | t | |||
| is the last one (0) or not (1)</t> | is the last one (0) or not (1)</dd> | |||
| <dt>Bit 0-6:</dt><dd> Fragment Offset (in units of fragments) to specify | ||||
| <t>Bit #0~#6: Fragment Offset (in units of fragments) to specify | ||||
| the offset of a particular fragment relative to the beginning | the offset of a particular fragment relative to the beginning | |||
| of the SDU</t> | of the SDU</dd> | |||
| </dl> | ||||
| </list> | <t> | |||
| </t> | ||||
| <t> | ||||
| A PDU carries a whole SDU without fragmentation if the FC field is | 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. | set to all "0"s or the FC field is not present in the trailer. | |||
| Otherwise, the PDU contains a fragment of the SDU.</t> | Otherwise, the PDU contains a fragment of the SDU.</t> | |||
| <t> | ||||
| <t> | ||||
| The Flow SN field in the trailer is used to distinguish the | The Flow SN field in the trailer is used to distinguish the | |||
| fragments of one SDU from those of another. The Fragment Offset | fragments of one SDU from those of another. The Fragment Offset | |||
| (FO) field tells the receiver the position of a fragment in the | (FO) field tells the receiver the position of a fragment in the | |||
| original SDU. The More Fragment (MF) flag indicates the last | original SDU. The More Fragment (MF) flag indicates the last | |||
| fragment.</t> | fragment.</t> | |||
| <t> | ||||
| <t> | To fragment a long SDU, the transmitter creates n PDUs and copies the | |||
| To fragment a long SDU, the transmitter creates n PDUs and copies | content of the IP header fields from the long PDU into the IP header of all | |||
| the content of the IP header fields from the long PDU into the IP | the PDUs. The length field in the IP header of the PDU | |||
| header of all the PDUs. The length field in the IP header of PDU | <bcp14>SHOULD</bcp14> be changed to the length of the PDU, and the protocol | |||
| SHOULD be changed to the length of the PDU, and the protocol type | type <bcp14>SHOULD</bcp14> be changed to 114.</t> | |||
| SHOULD be changed to 114.</t> | <t> | |||
| <t> | ||||
| The data of the long SDU is divided into n portions based on the | 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 | 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 | 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 | 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 | 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.</t> | set to "1" otherwise. The FO field is set to i-1.</t> | |||
| <t> | ||||
| <t> | To assemble the fragments of an SDU, the receiver combines PDUs | |||
| To assemble the fragments of a SDU, the receiver combines PDUs | ||||
| that all have the same Flow SN. The combination is done by placing | that all have the same Flow SN. The combination is done by placing | |||
| the data portion of each fragment in the relative order indicated | the data portion of each fragment in the relative order indicated | |||
| by the Fragment Offset in that fragment's GMA trailer (or header). | 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 first fragment will have the Fragment Offset set to "0", and | |||
| the last fragment will have the More-Fragments flag set to "0".</t> | the last fragment will have the More Fragment flag set to "0".</t> | |||
| <t> | ||||
| <t> | ||||
| GMA fragmentation operates above the IP layer of individual access | GMA fragmentation operates above the IP layer of individual access | |||
| connection (Wi-Fi, LTE) and between the two end points of | connection (Wi-Fi, LTE) and between the two endpoints of convergence | |||
| convergence layer. The convergence layer end points (client, | layer. The convergence layer endpoints (client, Multi-access Gateway) | |||
| multi-access gateway) SHOULD obtain the MTU of individual | <bcp14>SHOULD</bcp14> obtain the MTU of individual connection through | |||
| connection through either manual configuration or implementing | either manual configuration or implementing Path MTU Discovery (PMTUD) as | |||
| PMTUD as suggested in <xref target="RFC8900"/>.</t> | suggested in <xref target="RFC8900" format="default"/>.</t> | |||
| </section> | ||||
| </section> | <section anchor="sect-6" numbered="true" toc="default"> | |||
| <name>Concatenation</name> | ||||
| <section title="Concatenation" anchor="sect-6"><t> | <t> | |||
| The convergence sublayer MAY support concatenation if a delivery | The convergence sublayer <bcp14>MAY</bcp14> support concatenation if a delive | |||
| ry | ||||
| connection has a larger maximum transmission unit (MTU) than the | connection has a larger maximum transmission unit (MTU) than the | |||
| original IP packet (SDU). Only the SDUs with the same client IP | original IP packet (SDU). Only the SDUs with the same client IP | |||
| address, and the same Flow ID MAY be concatenated.</t> | address and the same Flow ID <bcp14>MAY</bcp14> be concatenated.</t> | |||
| <t> | ||||
| <t> | If the (trailer- or header-based) IP encapsulation method is used, | |||
| If the (trailer or header based) IP encapsulation method is used, | the First SDU Length (FSL) field <bcp14>SHOULD</bcp14> be included in the GMA | |||
| the First SDU Length (FSL) field SHOULD be included in the GMA | ||||
| trailer (or header) to indicate the length of the first SDU. | trailer (or header) to indicate the length of the first SDU. | |||
| Otherwise, the FSL field SHOULD not be included.</t> | Otherwise, the FSL field <bcp14>SHOULD</bcp14> not be included.</t> | |||
| <figure anchor="Fig8"> | ||||
| <figure title="Example of GMA PDU Format with Concatenation and Trailer-based | <name>Example of GMA PDU Format with Concatenation and Trailer-Based IP | |||
| IP Encapsulation" anchor="Fig8"> | Encapsulation</name> | |||
| <artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| +-----------------------------------------------------------+ | +-----------------------------------------------------------+ | |||
| |IP hdr| IP payload |IP hdr| IP payload | GMA Trailer | | |IP hdr| IP payload |IP hdr| IP payload | GMA Trailer | | |||
| +-----------------------------------------------------------+ | +-----------------------------------------------------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| To concatenate two or more SDUs, the transmitter creates one PDU | To concatenate two or more SDUs, the transmitter creates one PDU | |||
| and copies the content of the IP header field from the first SDU | 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 | 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 | 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 | is then placed in the second portion of the data of the PDU | |||
| (Figure 8). The procedure continues till the PDU size reaches the | (<xref target="Fig8"/>). The procedure continues until the PDU size reaches t he | |||
| MTU of the delivery connection. If the FSL field is present, 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 | IP Length field of the PDU <bcp14>SHOULD</bcp14> be updated to include all | |||
| concatenated SDUs and the trailer (or header), and the IP checksum | concatenated SDUs and the trailer (or header), and the IP checksum | |||
| field SHOULD be recalculated if the packet is IPv4.</t> | field <bcp14>SHOULD</bcp14> be recalculated if the packet is IPv4.</t> | |||
| <t> | ||||
| <t> | To disaggregate a PDU, if the (header- or trailer-based) IP | |||
| To disaggregate a PDU, if the (header or trailer based) IP | ||||
| encapsulation method is used, the receiver first obtains the | encapsulation method is used, the receiver first obtains the | |||
| length of the first SDU from the FSL field and decodes the first | 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 | 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 | on the length field in the second SDU IP header and decodes the | |||
| second SDU. The procedure continues till no byte is left in 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 | PDU. If the non-IP encapsulation method (<xref target="Fig7"/>) is used, the | |||
| IP | ||||
| header of the first SDU will not change during the encapsulation | header of the first SDU will not change during the encapsulation | |||
| process, and the receiver SHOULD obtain the length of the first | process, and the receiver <bcp14>SHOULD</bcp14> obtain the length of the firs | |||
| SDU directly from its IP header (Figure 9).</t> | t | |||
| SDU directly from its IP header (<xref target="Fig9"/>).</t> | ||||
| <figure title="Example of GMA PDU Format with Concatenation and Header-based | <figure anchor="Fig9"> | |||
| Non-IP (UDP) Encapsulation" anchor="Fig9"> | <name>Example of GMA PDU Format with Concatenation and Header-Based Non- | |||
| <artwork><![CDATA[ | IP (UDP) Encapsulation</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| |<-------1st GMA SDU------------ | |<-------1st GMA SDU------------ | |||
| +---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
| | IP hdr | UDP hdr | GMA Header | IP hdr | IP payload | | | IP hdr | UDP hdr | GMA Header | IP hdr | IP payload | | |||
| +---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
| | IP hdr | IP payload | | | IP hdr | IP payload | | |||
| +-------------------------------------------+ | +-------------------------------------------+ | |||
| -------->|<-------2nd GMA SDU---------------> | -------->|<-------2nd GMA SDU---------------> | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| If a PDU contains multiple SDUs, the Flow SN field is for the last | If a PDU contains multiple SDUs, the Flow SN field is for the last | |||
| SDU, and the Flow SN of other SDU carried by the same PDU can be | 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 | 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, | 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.</t> | and 6 for the first, second, and last SDU, respectively.</t> | |||
| <t> | ||||
| <t> | ||||
| GMA concatenation can be used for packing small packets of a | GMA concatenation can be used for packing small packets of a | |||
| single application, e.g., TCP ACKs, or from multiple applications. | single application, e.g., TCP ACKs, or from multiple applications. | |||
| Notice that a single GMA flow may carry multiple application flows | Notice that a single GMA flow may carry multiple application flows | |||
| (TCP, UDP, etc.).</t> | (TCP, UDP, etc.).</t> | |||
| <t> | ||||
| GMA endpoints <bcp14>MUST NOT</bcp14> perform concatenation and | ||||
| fragmentation in a single PDU. If a GMA PDU carries a fragmented SDU, it | ||||
| <bcp14>MUST NOT</bcp14> carry any other (fragmented or whole) SDU.</t> | ||||
| </section> | ||||
| <section anchor="sect-7" numbered="true" toc="default"> | ||||
| <name>Security Considerations</name> | ||||
| <t> | ||||
| 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.</t> | ||||
| <t> | ||||
| 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.) | ||||
| <bcp14>SHOULD</bcp14> 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.</t> | ||||
| <t> | ||||
| Local-only packet leak prevention (HL=0, TTL=1) <bcp14>SHOULD</bcp14> 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.</t> | ||||
| </section> | ||||
| <section anchor="sect-8" numbered="true" toc="default"> | ||||
| <name>IANA Considerations</name> | ||||
| <t> | ||||
| This document has no IANA actions. | ||||
| </t> | ||||
| </section> | ||||
| </middle> | ||||
| <back> | ||||
| <t> | <displayreference target="RFC2890" to="GRE1"/> | |||
| GMA endpoint MUST NOT perform concatenation and fragmentation in a | <displayreference target="RFC8157" to="GRE2"/> | |||
| single PDU. If a GMA PDU carries a fragmented SDU, it MUST NOT | <displayreference target="I-D.zhu-intarea-gma-control" to="GMAC"/> | |||
| carry any other (fragmented or whole) SDU.</t> | ||||
| </section> | ||||
| <section title="Security Considerations" anchor="sect-7"><t> | ||||
| 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.</t> | ||||
| <t> | ||||
| 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.</t> | ||||
| <t> | ||||
| 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 which could use the | ||||
| same IP protocol type, i.e. 114.</t> | ||||
| </section> | ||||
| <section title="IANA Considerations" anchor="sect-8"><t> | ||||
| This document makes no requests of IANA</t> | ||||
| </section> | ||||
| </middle> | ||||
| <back> | ||||
| <references title="Normative References"> | ||||
| &RFC2119; | ||||
| &RFC8174; | ||||
| <reference anchor="GRE1" target="https://www.rfc-editor.org/info/rfc2890" | ||||
| ><front> | ||||
| <title>Key and Sequence Number Extensions to GRE</title> | ||||
| <author initials="G." surname="Dommety" fullname="G. Dommety"> | ||||
| </author> | ||||
| <date month="September" year="2000"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="2890"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2890"/> | ||||
| </reference> | ||||
| </references> | ||||
| <references title="Informative References"> | ||||
| <reference anchor="MAMS" target="https://www.rfc-editor.org/info/rfc8743" | <displayreference target="RFC8743" to="MAMS"/> | |||
| ><front> | ||||
| <title>Multiple Access Management Services Multi-Access Management Servic | ||||
| es (MAMS)</title> | ||||
| <author initials="S." surname="Kanugovi" fullname="S. Kanugovi"> | ||||
| </author> | ||||
| <author initials="F." surname="Baboescu" fullname="F. Baboescu"> | <references> | |||
| </author> | <name>References</name> | |||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.2119.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8174.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.2890.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8157.xml"/> | ||||
| <author initials="J." surname="Zhu" fullname="J. Zhu"> | </references> | |||
| </author> | <references> | |||
| <name>Informative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8743.xml"/> | ||||
| <author initials="S." surname="Seo" fullname="S. Seo"> | <reference anchor="IANA" target="https://www.iana.org/assignments/protoc | |||
| ol-numbers"> | ||||
| <front> | ||||
| <title>Protocol Numbers | ||||
| </title> | ||||
| <author> | ||||
| <organization>IANA</organization> | ||||
| </author> | </author> | |||
| </front> | ||||
| </reference> | ||||
| <date month="March" year="2020"/> | <reference anchor="LWIPEP" target="https://portal.3gpp.org/desktopmodules/Spe | |||
| </front> | cifications/SpecificationDetails.aspx?specificationId=3037"> | |||
| <front> | ||||
| <seriesInfo name="RFC" value="8743"/> | <title>Evolved Universal Terrestrial Radio Access (E-UTRA); | |||
| <seriesInfo name="DOI" value="10.17487/RFC8743"/> | LTE-WLAN Radio Level Integration Using Ipsec Tunnel (LWIP) | |||
| </reference> | encapsulation; Protocol specification | |||
| <reference anchor="IANA" target="https://www.iana.org/assignments/protoco | </title> | |||
| l-numbers/protocol-numbers.xhtml"><front> | <author> | |||
| <title/> | <organization>3GPP</organization> | |||
| <author> | </author> | |||
| </author> | <date month="July" year="2020"/> | |||
| </front> | ||||
| <seriesInfo name="3GPP TS" value="36.361"/> | ||||
| <refcontent>Release 13</refcontent> | ||||
| </reference> | ||||
| <date/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | |||
| </front> | C.0791.xml"/> | |||
| <reference anchor="ATSSS" target="https://portal.3gpp.org/desktopmodules/Specif | ||||
| ications/SpecificationDetails.aspx?specificationId=3254"> | ||||
| <front> | ||||
| <title>Study on access traffic steering, switch and splitting | ||||
| support in the 5G System (5GS) architecture | ||||
| </title> | ||||
| <author> | ||||
| <organization>3GPP</organization> | ||||
| </author> | ||||
| <date month="December" year="2018"/> | ||||
| </front> | ||||
| <seriesInfo name="3GPP TR" value="23.793"/> | ||||
| <refcontent>Release 16</refcontent> | ||||
| </reference> | </reference> | |||
| <!-- | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | |||
| draft-zhu-intarea-gma-14-manual.txt(762): Warning: Failed parsing a reference | C.8900.xml"/> | |||
| . | ||||
| Are all elements separated by commas (not periods, not just spaces)?: | ||||
| [LWIPEP] 3GPP TS 36.361, "Evolved Universal Terrestrial Radio | ||||
| Access (E-UTRA); LTE-WLAN Radio Level Integration Using | ||||
| Ipsec Tunnel (LWIP) encapsulation; Protocol | ||||
| specification" | ||||
| --> | ||||
| &RFC0791; | ||||
| <!-- | ||||
| draft-zhu-intarea-gma-14-manual.txt(771): Warning: Failed parsing a reference | ||||
| . | ||||
| Are all elements separated by commas (not periods, not just spaces)?: | ||||
| [ATSSS] 3GPP TR 23.793, Study on access traffic steering, switch | ||||
| and splitting support in the 5G system architecture. | ||||
| --> | ||||
| &RFC8900; | <reference anchor="IANA1999" quote-title="false" target="https://web.ar | |||
| <reference anchor="IANA1999" target="https://web.archive.org/web/19990203 | chive.org/web/19990203044112/http://www.isi.edu:80/in-notes/iana/assignments/pro | |||
| 044112/http://www"><front> | tocol-numbers"> | |||
| <title/> | <front> | |||
| <author> | <title>Wayback Machine archive of "Protocol Numbers" | |||
| </title> | ||||
| <author> | ||||
| <organization>IANA | ||||
| </organization> | ||||
| </author> | </author> | |||
| <date month="February" year="1999"/> | ||||
| </front> | ||||
| </reference> | ||||
| <date/> | <reference anchor="GCC" | |||
| </front> | target="https://datatracker.ietf.org/doc/html/draft-ietf-rmcat-gcc-02" derivedAn | |||
| chor="Google-GCC"> | ||||
| </reference> | <front> | |||
| <title>A Google Congestion Control Algorithm for Real-Time Communica | ||||
| &I-D.ietf-rmcat-gcc; | tion</title> | |||
| <author initials="S" surname="Holmer" fullname="Stefan Holmer"> | ||||
| <!-- | <organization showOnFrontPage="true"/> | |||
| draft-zhu-intarea-gma-14-manual.txt(786): Warning: Failed parsing a reference | </author> | |||
| . | <author initials="H" surname="Lundin" fullname="Henrik Lundin"> | |||
| Are all elements separated by commas (not periods, not just spaces)?: | <organization showOnFrontPage="true"/> | |||
| [MPIP] L. Sun, et al. Multipath IP Routing on End Devices: Motivation, | </author> | |||
| Design, and Performance, https://eeweb.engineering.nyu.edu/faculty/ | <author initials="G" surname="Carlucci" fullname="Gaetano Carlucci"> | |||
| yongliu/docs/MPIP_Tech.pdf | <organization showOnFrontPage="true"/> | |||
| --> | </author> | |||
| <author initials="L" surname="De Cicco" fullname="Luca De Cicco"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S" surname="Mascolo" fullname="Saverio Mascolo"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date month="July" day="8" year="2016"/> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-rmcat-gcc-02"/> | ||||
| </reference> | ||||
| &I-D.zhu-intarea-gma-control; | <reference anchor="MPIP" target="https://eeweb.engineering.nyu.edu/faculty/yon | |||
| gliu/docs/MPIP_Tech.pdf"> | ||||
| <front> | ||||
| <title>Multipath IP Routing on End Devices: Motivation, Design, | ||||
| and Performance | ||||
| </title> | ||||
| <author initials="L." surname="Sun" fullname="Liyang Sun"/> | ||||
| <author initials="G." surname="Tian" fullname="Guibin Tian"/> | ||||
| <author initials="G." surname="Zhu" fullname="Guanyu Zhu"/> | ||||
| <author initials="Y." surname="Liu" fullname="Yong Liu"/> | ||||
| <author initials="H." surname="Shi" fullname="Hang Shi"/> | ||||
| <author initials="D." surname="Dai" fullname="David Dai"/> | ||||
| <date year="2017"/> | ||||
| </front> | ||||
| </reference> | ||||
| </references> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D. | |||
| </back> | zhu-intarea-gma-control.xml"/> | |||
| </references> | ||||
| </references> | ||||
| </rfc> | </back> | |||
| </rfc> | ||||
| End of changes. 99 change blocks. | ||||
| 756 lines changed or deleted | 708 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||